已解决: 根据调试发现,wx.setStorageSync可以保存字符串数据、列表等,但是再次使用wx.setStorageSync更新时对于字符串数据可以正常更新,但列表数据不会更新,如果需要对数据进行保存,建议格式化数据为字符串后再进行保存操作
微信小游戏缓存setStorageSync多次存储仅存储第一次为什么?基础库:2.20.1,windows系统 各位大佬好。我在写一个功能,当用户点击按钮后,程序会将用户更新的信息写入到缓存'index_home'键中,但当第二次点击时显示写入的是第一次数据,重启后依然为第一次数据,后续的数据全部无法写入: 该功能中有两个类,第一个类为 state类,用于用户的输入UI等功能,第二个类为databus类,这个类负责维护全局状态。state类中当用户点击更新后会触发update函数,这个函数将更新databus.index_home的数据,这个数据是一个列表(如:['index','1','2','3']),update在更新完databus.index_home数据后会调用databus.update_index_home函数,这个函数会将databus.index_home中的数据使用 wx.setStroageSync('key',this.index_home)导入更新的数据到缓存中:如下 [图片] 现在出现的问题是: 当用户第一次点击时:数据正常更新,缓存中的数据也正常更新 当用户第二次点击时:this.index_home中的数据正常更新,但是上图中tmp1的数据错误,为第一次点击后更新的数据 已经尝试的解决方案: 使用queue/Promise等功能顺序写入,防止因快速写入导致的写入错误——无效使用setTimeout功能在写入第一次后等待100ms再写入——无效求求各位大佬救救孩子吧 (某CHat已经放弃我了)
2023-04-09