【快应用】二级页面如何携带参数返回一级页面?

news/2024/11/17 1:51:12/

 【关键词】

快应用、router、onBackPress

【问题背景】

页面栈有A、B两个页面,怎么在B页面中调A页面的方法或传参?场景是:A页面是列表页,B页面是详情页,B页面状态改变后返回A页面状态也要改变。

【解决方法】

在onBackPress里重写返回逻辑,通过router.push方式携带参数跳转,A页面在onshow里通过this.param获取(param是push传参的参数名)。

代码如下:

A页面:

<template><!-- Only one root node is allowed in template. --><div class="container"><text class="title">A的值是{{message}}</text><input class="btn" type="button" value="跳转"  @click="onClick" /></div>
</template><style>.container {flex-direction: column;justify-content: center;align-items: center;}.btn {width: 140px;height: 60px;background-color: #00bfff;border-radius: 28px;}.title {font-size: 50px;}
</style><script>import router from '@system.router'module.exports = {data: {componentData: {},message: 'Hello World'},onInit() {this.$page.setTitleBar({text: 'PageA',textColor: '#ffffff',backgroundColor: '#007DFF',backgroundOpacity: 0.5,menu: true});},onShow(options) {'// Do something when show.'console.log(this.messageB + 'this.messageB')// messageB是B页面携带返回的参数this.message = this.messageB || this.message},onClick() {router.push({uri: '/pageB',params: {message: this.message}})}}
</script>

B页面:

<template><!-- Only one root node is allowed in template. --><div class="container"><text class="title">接收message:{{messageB}}</text><input class="btn" type="button" value="改变message"  @click="onClick" /></div>
</template><style>.container {flex-direction: column;justify-content: center;align-items: center;}.btn {width: 300px;height: 60px;margin-bottom: 20px;background-color: #00bfff;border-radius: 75px;}.title {font-size: 50px;}
</style><script>import router from '@system.router'module.exports = {data: {componentData: {},messageB: ''},onInit() {this.$page.setTitleBar({text: 'PageB',textColor: '#ffffff',backgroundColor: '#007DFF',backgroundOpacity: 0.5,menu: true});},onShow(options) {'// Do something when show.'console.log(this.message + 'this.messageA')// message 是A页面传过来的值this.messageB = this.message},onClick() {this.messageB = 'Hello QuickApp'},onBackPress() {console.info(`Triggered:onBackPress`);router.clear()router.push({uri: '/hello',params: {messageB: this.messageB}})}}
</script>

效果图如下:

cke_1751.pngcke_2374.pngcke_3071.pngcke_3884.png


http://www.ppmy.cn/news/1094354.html

相关文章

详解 sudo usermod -aG docker majn

这个命令涉及到几个 Linux 系统管理的基础概念&#xff0c;包括 sudo、usermod 和用户组管理。我们可以逐一地解析它们&#xff1a; sudo: sudo&#xff08;superuser do&#xff09;允许一个已经被授权的用户以超级用户或其他用户的身份执行一个命令。当使用 sudo 前缀一个命令…

网络安全攻防对抗之白加黑技术

目录 一、什么是白加黑技术&#xff1f; 二、怎么防范白加黑技术&#xff1f; 一、什么是白加黑技术&#xff1f; “白加黑”手法是一种利用DLL劫持技术的攻击方式。它通过在应用程序的导出目录中创建一个DLL文件&#xff0c;并通过LoadLibrary函数&#xff08;或者找一个已有…

video标签自动播放音视频并绘制波形图

html中的<video>标签可以用来播放常见的音视频格式&#xff0c;支持的格式包括:MP3、Ogg、WAV、AAC、MP4、WebM、AVI等&#xff0c;当然支持的格式也和浏览器和操作系统有关。这里以一个可以自动播放音视频并绘制波形图的页面为例说明一下<video>标签的用法。 vid…

一种借助MYSQL递归CTE生成所有组合情况的实现方法

需求说明 有如下表和数据&#xff1a; Nname1户口2查询机构数过多3危险驾驶4多头用信 需要输出name里的所有组合情况&#xff0c;即单个值&#xff0c;两两组合&#xff0c;三个组合、四个组合。结果为2的n次方-1中情况&#xff0c;这里是15。 预期结果为&#xff1a; Com…

【1++的数据结构】之哈希(一)

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的数据结构】 文章目录 一&#xff0c;什么是哈希&#xff1f;二&#xff0c;哈希冲突哈希函数哈希冲突解决 unordered_map与unordered_set 一&#xff0c;什么是哈希&#xff1f; 首先我们要…

Google 在 2023 开发者大会上的 AI 革命

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页 ——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

算法通关村-----位运算在海量元素中查找重复元素的妙用

用4KB内存寻找重复元素 问题描述 给定一个数组&#xff0c;包含从1到N的整数&#xff0c;N最大为32000&#xff0c;数组可能还有重复值&#xff0c;且N的取值不定&#xff0c;若只有4KB内存可用&#xff0c;如何打印数组中所有的重复元素。 问题分析 Java中存储整数使用int…

kuiper安装

1:使用docker方式安装 docker pull lfedge/ekuiper:latest docker run -p 9081:9081 -d --name kuiper -e MQTT_SOURCE__DEFAULT__SERVERtcp://127.0.0.1:1883 lfedge/ekuiper:latest这样就安装好了&#xff0c;但是操作只能通过命令完成&#xff0c;如果想要通过页面来操作&…