当组件有初始数据时 setData 不能工作
发布于 6 年前 作者 xieping 19796 次浏览 来自 问答

使用 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](/user/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
  1. setData 调用后,$data.time 被更新
  1. 退出事件处理函数 $data.time 变为 0
1 回复

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

回到顶部