美文网首页小程序踩坑指南
setData()函数延迟导致的页面异常

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

作者: 徐喷以烟 | 来源:发表于2018-12-28 15:50 被阅读0次

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

异常原因

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

解决方案

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

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

相关文章

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

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

  • 内存和性能

    每个函数都是对象,都会占用内存;事先指定的时间处理函数导致的DOM访问,会延迟页面的交互就绪时间; 1)事件委托 ...

  • 【iOS】界面跳转性能优化

    iOS界面跳转卡顿延迟的原因:1.A页面跳到B页面,B页面加载大量数据,导致卡顿延迟;2.A页面跳到B页面,B页面...

  • AuthenticationEntryPoint导致登录页面异常

      在使用Spring Security的时候我们可能会自定义一个AuthenticationEntryPoint...

  • 小程序踩坑之旅

    1.scrolll-view中的手动滚动导致页面渲染延迟 解决方法:滚动会导致所有异步阻塞,给页面对应的 .jso...

  • 微信小程序:setData报错TypeError: Cannot

    问题的原因: 无法找到setData这个定义,因为setData中是onLoad函数中的方法中的子节点, 无法使用...

  • 2 在HTML中使用JS