收藏
回答

自定义组件中的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,请问这个是什么原因导致的

最后一次编辑于  2018-03-08  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

4 个回答

  • 这都申请了
    这都申请了
    2018-03-08

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

    2018-03-08
    赞同
    回复
  • webkity
    webkity
    2018-03-08

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

    2018-03-08
    赞同
    回复
  • 心有林夕
    心有林夕
    2018-03-08

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

    2018-03-08
    赞同
    回复
  • 牧星长
    牧星长
    2018-03-09

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

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

          },function(){

            console.log(this.data.isMoving)

          });
        }
      }
    })


    2018-03-09
    赞同
    回复