如何实现跨页实时获取数据?(跪求各路大神)
发布于 6 年前 作者 lima 7385 次浏览 来自 问答

这个问题我已经弄了两天了,都弄到凌晨12点,还是解决不了。是我的代码不对,还是函数的BUG?

无法获取实时的数值,只能获取上一次的数值,为什么呢?

如果使用同步缓存,则无法实时获取数据,显示的是上一次的选项;

如果使用异步缓存,则只能在同一页面内使用,无法跨页获取数据(无法传递数据)


【场景】

pageA有三道选择题,用户选择好之后,跳转到pageB会在页面显示刚刚的选择:“您刚刚的选择分别是:B、C、A


【代码思路】

(1)在pageA定义一个数组arrayA:    

var arrayA = [{ text: 'A' }, { text: 'A' }, { text: 'A' }];


(2)用户操作后arrayA获取值(确实获取到了,我通过wx.showToast检验,显示数组已经获得值):

wx.setStorageSync('arrayA'arrayA)


(3)在B的js中获取数值:

Page({

    data:{

        arrayBwx.getStorageSync('arrayA'),

    },

})


(4)在B的wxml中显示值:

<text class='what' style='red'>

刚刚的选择分别是:{{arrayA}}

</text>


【问题】

为什么显示的是再上一次的操作呢?比如这次我选了AAB,显示的却是我上一次的选择CCA。

重新加载后,我选了BBB,显示的却是AAB……

什么情况???

如果使用同步缓存,则无法实时获取数据,显示的是上一次的选项;

如果使用异步缓存,则只能在同一页面内使用,无法跨页获取数据(无法传递数据)


那么到底怎么做,才能实现pageA里获取的数据后,在跳转pageB时可以显示刚刚获取的数据呢?


这个问题我已经弄了两天了,都弄到凌晨12点,还是解决不了。是我的代码不对,还是函数的BUG?

2 回复

arrayBwx.getStorageSync(arrayA),在B页面onload里再设置下呢

我也遇到了同样的问题,同样很疑惑,不知道楼主问题解决了吗?

之后我看到了这篇帖子 ,打算回去试一下这个库

https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=000884f4998600f04366d059b5b006&highline=setstorage

回到顶部