html52.com
我爱小程序-开发者交流社区

自定义组件中的setData没有更新视图

问题模块 框架类型 终端类型 微信版本 基础库版本
框架 小程序 工具 1.02.1802270 1.7.4

自定义组件的setData没有更新视图:


<view class="w-slide-menu">
  <!--主容器-->
  <view class="w-slide-menu-content"
    bindtouchstart="touchstartHandler">
    {{isMoving}}
  </view>
</view>


// frame/slideMenu/slideMenu.js
Component({
  data: {
    isMoving: false
  },
  methods: {
    touchstartHandler (e) {
      this.setData({
        isMoving: true
      })
      console.log(this.data.isMoving)
    }
  }
})

当点击w-slide-menu-content的时候console.log打印的值为true,但是视图中的显示还是false,请问这个是什么原因导致的

网友回复

鬼老武:

因为setData是一个异步的方法,console.log()输出的时候可能还没有执行完毕,可以尝试一下下面的写法

// frame/slideMenu/slideMenu.js
Component({
  data: {
    isMoving: false
  },
  methods: {
    touchstartHandler (e) {
      this.setData({
        isMoving: true

      },function(){

        console.log(this.data.isMoving)

      });
    }
  }
})


心有林夕:

不要太依赖编辑器,编辑器和真机的体现,有时会出现差异性,以真机为主。

webkity:

我也很奇怪,我在手机上体验版本不会有这个问题,就是我这个开发者工具有这个问题,我是懵逼的

这都申请了:

测试没有复现,很奇怪你的情况

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付