l***@foxmail.com
l***@foxmail.com
  • 发布:2018-09-20 11:00
  • 更新:2020-09-28 23:19
  • 阅读:35173

使用uni.navigateBack修改上一个页面值,多页面传参通信解决方案

分类:uni-app

此类需求大概意思是:A页面进入B页面,B页面返回并传值给A。

var pages = getCurrentPages();
var currPage = pages[pages.length - 1]; //当前页面
var prevPage = pages[pages.length - 2]; //上一个页面

//直接调用上一个页面的setData()方法,把数据存到上一个页面中去
prevPage.setData({
mdata:1
})
uni.navigateBack(); //上一个页面数据无法修改

解决方案:onfire.js 是一个很简单的事件分发的Javascript库(仅仅 0.9kb),简洁实用。github地址:https://github.com/hustcc/onfire.js/blob/master/README_zh.md
可以用于:

  1. 简单的事件分发;
  2. 在 react / vue.js / angular 用于跨组件的轻量级实现;
  3. 事件订阅和发布;
    A页面:
    onShow:function(){
    var that = this;
    onfire.on('setAddressInfo',function(addressInfo){
    that.addressInfo = addressInfo;
    })
    },
    B页面:
    selectText: function(e){
    var that = this;
    var that_addressInfo ={
    location: e.currentTarget.id
    }
    onfire.fire('setAddressInfo',that_addressInfo);
    uni.navigateBack();
    }

参考来源:https://juejin.im/post/5907f120b123db3ee48d2a4f

2 关注 分享
x***@sina.com damdmen

要回复文章请先登录注册

哈库拉玛塔塔

哈库拉玛塔塔

用起来感觉咋样?好用么,屌大的来讲一下
2019-01-15 16:46
4***@qq.com

4***@qq.com

uni-app 页面间和组件间通信解决方案 https://hao-love.wang/2019/01/09/uniapp-ye-mian-jian-he-zu-jian-jian-tong-xin-jie-j/
2019-01-09 15:19
DCloud_heavensoft

DCloud_heavensoft

回复 2***@qq.com :
http://ask.dcloud.net.cn/article/565
2018-11-22 05:17
2***@qq.com

2***@qq.com

回复 l***@foxmail.com :
好的,谢谢,还想问一下HBuilderX能WiFi调式吗?
2018-11-20 19:53
l***@foxmail.com

l***@foxmail.com (作者)

回复 2***@qq.com :
两个页面中都引入 例:import onfire from '../../common/onfire.js';
A页面固定,提供属性值,例: addressInfo:{
location: '',
address: '点击选择地点',
name:''
},
打开B页面,获取数据赋到A页面提供的属性或方法中,例:var that_addressInfo ={
location: e.currentTarget.id,
address: e.currentTarget.dataset.address,
name:e.currentTarget.dataset.name,
formatted_address:that.formatted_address
}
onfire.fire('setAddressInfo',that_addressInfo);
2018-11-20 17:05
2***@qq.com

2***@qq.com

提示说没有找到变量
2018-11-20 16:17
2***@qq.com

2***@qq.com

您好,我想问一下,直接从GitHub 下载下来,把onfire文件直接放到项目中引入不行吗?我试了好久。没解决
2018-11-20 16:14