此类需求大概意思是: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
可以用于:
- 简单的事件分发;
- 在 react / vue.js / angular 用于跨组件的轻量级实现;
- 事件订阅和发布;
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
17 个评论
要回复文章请先登录或注册
哈库拉玛塔塔
4***@qq.com
DCloud_heavensoft
2***@qq.com
l***@foxmail.com (作者)
2***@qq.com
2***@qq.com