小程序
小游戏
企业微信
微信支付
扫描小程序码分享
小程序navigateTo新打开多个同一路由页面,然后返回上一个页的时候,当前的页面表面数据是对的,貌似是缓存,但其实data记录的是刚打开多个页面,最后一个页面的数据,这时页面进行交互点击事件之类的 重新渲染就能看到
5 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
导致原因:
页面 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()
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
如果有好的办法,欢迎补充
在url路径后拼上一个随机数
例如:
Taro.navigateTo({
url:'/pages/detail/index?meetingId=${id}&time=${new Date().getTime()}'
})
我在onUnload清空了works,再重新进来,实际上页面已经渲染正确的新数据,只是我代码取data取到的是却是旧页面的数据,所以直接报错
navigateTo需要带上商品id,每次打开的时候需要根据商品id重新去接口取数据放入setData,重新渲染
navigateTo肯定带商品Id了 就是后退的时候,数据不对
navigateTo新打开多个同一路由页面=>这个操作是?
比如用户打开了的第一个商品详情页面,又在下面的推荐商品列表又点了另外的商品,navigateTo新打开第二商品详情,依次类推可以打开多个商品详情页面,后退上个商品详情,会出现的数据不正确 展示的是缓存 实际data是最后一个打开商品的数据
麻烦提供下复现的代码片段:https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
导致原因:
页面 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()
}
```
如果有好的办法,欢迎补充
在url路径后拼上一个随机数
例如:
Taro.navigateTo({
url:'/pages/detail/index?meetingId=${id}&time=${new Date().getTime()}'
})
我在onUnload清空了works,再重新进来,实际上页面已经渲染正确的新数据,只是我代码取data取到的是却是旧页面的数据,所以直接报错
navigateTo需要带上商品id,每次打开的时候需要根据商品id重新去接口取数据放入setData,重新渲染
navigateTo肯定带商品Id了 就是后退的时候,数据不对
navigateTo新打开多个同一路由页面=>这个操作是?
比如用户打开了的第一个商品详情页面,又在下面的推荐商品列表又点了另外的商品,navigateTo新打开第二商品详情,依次类推可以打开多个商品详情页面,后退上个商品详情,会出现的数据不正确 展示的是缓存 实际data是最后一个打开商品的数据
麻烦提供下复现的代码片段:https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html