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

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

异常原因

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

解决方案

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

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

你可能感兴趣的:(setData()函数延迟导致的页面异常)