小程序
小游戏
企业微信
微信支付
扫描小程序码分享
第一个页面/pages/pageOne中有一个按钮,navigateTo到第二个同一路径/pages/pageOne页面,数据重新请求,由于页面栈内为同一个,会把第一个页面的数据替换,再返回第一个页面时,第一个页面的数据全部变为第二个页面的数据,发生数据冲突,请问有办法解决吗?
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
第一个页面的数据全部变为第二个页面的数据 能具体描述下吗
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
比如第一次进页面,路径为‘/pages/index?id=1234’,有个参数id为1234,this.id=1234,页面内有个按钮跳转到‘/pages/index?id=4321’,this.id=4321。同时上一个页面的id也成了4321,所以点击返回按钮的时候,页面内的id字段不是1234
问题解决了吗,遇到相同问题
回复所有关注此问题的开发者:
1、在B页面设置A页面的需要刷新参数:
var pages = getCurrentPages();
var prevPage = pages[pages.length - 2];
prevPage.setNeedRefresh(true);
2、在A页面的onShow()方法中判断是否需要刷新
导致原因:
页面 A、与页面 B 共享同一个 Page 实例导致的
目前尝试过两种不是很好的解决办法:
第一种: 修改 `Data` 数据结构,用商品的 `goodsId` 值作为 key,如下
```
data = {
Data: {
[goodsId_A]: '',
[goodsId_B]: '',
// ...
}
第二种: 从页面参数中取goodsId,在onshow中做更新
onShow() {
const currentPages = getCurrentPages() || [] // eslint-disable-line
const { options } = currentPages[currentPages.length - 1] || {}
let { goodsId = ''} = options
this.goodsId = goodsId
this.$apply()
如果有好的办法,欢迎补充
你好 我也出现类似问题。你怎么解决的
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
第一个页面的数据全部变为第二个页面的数据 能具体描述下吗
比如第一次进页面,路径为‘/pages/index?id=1234’,有个参数id为1234,this.id=1234,页面内有个按钮跳转到‘/pages/index?id=4321’,this.id=4321。同时上一个页面的id也成了4321,所以点击返回按钮的时候,页面内的id字段不是1234
问题解决了吗,遇到相同问题
回复所有关注此问题的开发者:
1、在B页面设置A页面的需要刷新参数:
var pages = getCurrentPages();
var prevPage = pages[pages.length - 2];
prevPage.setNeedRefresh(true);
2、在A页面的onShow()方法中判断是否需要刷新
导致原因:
页面 A、与页面 B 共享同一个 Page 实例导致的
目前尝试过两种不是很好的解决办法:
第一种: 修改 `Data` 数据结构,用商品的 `goodsId` 值作为 key,如下
```
data = {
Data: {
[goodsId_A]: '',
[goodsId_B]: '',
// ...
}
}
```
第二种: 从页面参数中取goodsId,在onshow中做更新
```
onShow() {
const currentPages = getCurrentPages() || [] // eslint-disable-line
const { options } = currentPages[currentPages.length - 1] || {}
let { goodsId = ''} = options
this.goodsId = goodsId
this.$apply()
}
```
如果有好的办法,欢迎补充
你好 我也出现类似问题。你怎么解决的