小程序踩坑指南

setData()函数延迟导致的页面异常

2018-12-28  本文已影响0人  徐喷以烟

setData 函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的 this.data 的值(同步)。

异常原因

setData()函数先改变this.data的值(同步),再将修改后的值从js发送到wxml(异步),因此可能会导致在data值修改成功之前,就已经执行了后续代码,导致后面要用到修改后的值的逻辑部分出错。

解决方案

在setData()函数后加入回调函数:

    this.setData({
      yourData: value,
    },()=>{
      成功修改data值后要执行的代码块
    })
上一篇 下一篇

猜你喜欢

热点阅读