微信小程序 页面跳转 页面数据 错乱 问题
发布于 5 年前 作者 leichao 9673 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)

首页 跳转 a页面 传参 data=1,

a页面跳转 b页面

b页面跳转 a页面 传参 data=2,

此时在当前 a 页面,点击返回按钮 会回到 b 页面,

此时在当前 b 页面,点击返回按钮 会回到 a 页面,

bug 出现了,此时的 a 页面的 data 的值 本来应该是 1,可是此时 却是 2 。

  • 预期表现

希望回退操作 不改变 原有 page 的 data

  • 复现路径

运行代码片段 -> 点击跳转 a 页面 button -> 点击跳转 b 页面 button -> 点击跳转 a 页面 button - 返回按钮 - 返回按钮

  • 提供一个最简复现 Demo

https://developers.weixin.qq.com/s/9qD90gmw7390

3 回复

其实想让 a 页面的 data 数据和 a 页面实例绑定,最好的办法是 用   setData({data})  绑定,
然后使用的时候,用this.data.data 获取,这样就能保证  页面数据 data 和 页面绑定,保证数据一致性了,

如果没有 setData 绑定的 page全局变量,值会变的
或者 setData() 绑定了 data  page全局变量。在获取的时候要想获取和页面绑定的一致的 data ,不能直接用 data ,得 this.data.data 这样获取


我的问题解决了,希望能帮到 遇到相同问题的 开发者

不过还是有个 疑问,就是 不通过  this.data.data 这种方式获取,直接使用 page 的全局变量 data 为什么 会出 问题呢? 


希望能收到官方同学的回复。谢谢

最终 代码片段如下https://developers.weixin.qq.com/s/oBHQsgmm7m9g

b跳转到a传的是2,a的data一定是2,后续只是返回操作并没有传参行为,不是2你认为是1?最终结果a页面的data应该是2

代码片段看不了开发者工具又抽筋了,估计又是生命周期问题

回到顶部