收藏
回答

当组件有初始数据时 setData 不能工作

使用 wepy 1.7.0 创建的项目。当组件有初始数据 time: 0,setData 将 time 更新后,立即又会变回 0。期望 time 是 setData 更新后的值。


<template>
  <page>
    <view class="weui-cells">
      <view class="weui-cell">
        <view class="weui-cell__bd">当前时间</view>
        <view class="weui-cell__ft">{{time}}</view>
      </view>
    </view>
    <view class="page__bd page__bd_spacing" style="padding-top:15px">
      <button class="weui-btn" type="primary" @tap="getTime">异步获取当前时间</button>
    </view>
  </page>
</template>
<script>
  import wepy from 'wepy'
 
  export default class NoRedux extends wepy.page {
    data = {
      time: 0
    }
    getTime() {
      this.setData({ time: Date.now() })
    }
  }
</script>


1. setData 调用前 $data, $initData 的 time 均为 0


2. setData 调用后,$data.time 被更新


3. 退出事件处理函数 $data.time 变为 0



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

1 个回答

  • 陈倬
    陈倬
    2018-02-15

    在 wepy 中使用 $apply 来应用更新。

    2018-02-15
    赞同
    回复