路由传参
当前页面
wx.navigateTo({
url: '/pages/test/index?id=123'
})
<navigator url="/pages/test/index?id=123">页面通信</navigator>
被打开页面
onLoad: function (options) {
console.log(options);
}
页面通信
1.当前页向目标页传递数据
//当前页
onEventChannel() {
wx.navigateTo({
url: '/pages/test/index',
success(res) {
res.eventChannel.emit('emitData', {
data: 123
})
}
})
},
//目标页面
onLoad: function (options) {
let eventChannel = this.getOpenerEventChannel()
eventChannel.on('emitData', data => {
console.log(data);
})
},
2. 目标页向当前页传递数据
//当前页
onEventChannel() {
wx.navigateTo({
url: '/pages/test/index',
events:{
emitData(data){
console.log(data);
}
}
})
},
//目标页
onLoad: function (options) {
let eventChannel = this.getOpenerEventChannel()
eventChannel.emit('emitData', {
data: 123
})
},
修改上一页数据
const pages = getCurrentPages(); // 可以获取当前页面栈,是一个数组
const prevPage = pages[pages.length - 2]; // 获取上个页面
//prevPage就是上一页面的数据,包含数据和方法
//修改上一个页面的data
//相当于子页面向父页面传参
prevPage.setData({
name: 'xxx',
});
最后:还可以是用globalData实现多页面通信,本地缓存(.wx.setStorage、wx.getStorage)