目前的场景是,我再A页面跳转B页面,B页面会有params,然后B页面跳转C页面,C页面有输入等一系列操作,点击确认后请求会返回一个新的 id,我需要用这个新的 id在返回到B页面,B页面再用params上的参数去做请求, A跳B和C跳B的params是不同的。这个时候,使用 navigateTo的话,会返回到C页面(操作页面,肯定不对),用redirectTo,路由里就会有两个B页面,用户需要返回两次才能回到A页面,这个肯定也不太好,想知道有什么好的方法吗?C跳到B,B返回操作直接到A,目前我用了很hack的方式,就是先调用一下 navigateBack,然后再调用redirectTo,这样是可以实现的,但是会有一个跳转闪烁的问题,对用户不太友好,想问下还有什么好的解决办法吗?我没想到的,(或者navigateBack可以修改参数吗?这个可能有点难)
在C页面 使用 navigateBack 回到B页面,在B页面的onShow中处理params
// C页面 :
const pages = wx.getCurrentPages();
const prevPage = pages[pages.length - 2];
if (!prevPage) return;
prevPage.setData({
// 要设置的值
params: {}
})
wx.navigateBack({
delta: 1,
});
•
// B页面
onShow() {
const pages = wx.getCurrentPages();
const currentPage = pages[pages.length - 1];
const { params } = currentPage.data;
}
可以用EventChannel传递数据,参考一下示例代码
https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.navigateTo.html