请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

这里自动同步选项有个bug

打开app -> 读取本地数据获取自动同步的状态(true/false) -> 点击自动同步改变状态 -> 改变成功

再次点击自动同步 -> 自动同步的状态无法再次改变(checkbox的状态被改变,settingsStore的enableAutoSync无法再次改变)

用老师的代码也重现了同样的bug

解决方案:在自动同步的点击事件里获取当前状态

{

click: () => {

          const enable = settingsStore.get('enableAutoSync')

          settingsStore.set('enableAutoSync', !enable)

}

正在回答 回答被采纳积分+3

1回答

提问者 qq_慕勒5016658 2020-07-16 14:07:30

思考了一下这里面的问题

menuTemplate.js这个文件只在app启动时加载

里面的qiniuIsConfiged和enableAutoSync也只在js文件加载的时候被赋值,在此之后就不再被执行了

所以当点击"自动同步"选项的时候,只能用第一次加载的enableAutoSync参数来进行处理,第一次状态取反可以正确执行,第二次之后就获取不到最新的状态了

不知道是否正确

1 回复 有任何疑惑可以回复我~
  • 提问者 qq_慕勒5016658 #1
    这里有一个新的问题
    menuTemplate.js里最开始定义的两个参数qiniuIsConfiged和enableAutoSync只是作为菜单的初始状态被加载
    但是在菜单状态被改变之后,这两个参数好像就没用了,但还是占着内存空间没有被释放?
    回复 有任何疑惑可以回复我~ 2020-07-16 14:14:51
  • 我也遇到同样问题,我就不使用enableAutoSync保存数据用到checked和click那里了,而是直接在checked和click属性那里都settingsStore.get('enableAutoSync'),每次都能获取最新的enableAutoSync值
    回复 有任何疑惑可以回复我~ 2022-12-14 02:05:07
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信