为什么我在setTimeout里边改变了data里边的数据,dom没有更新?
发布于 6 年前 作者 xiulan05 8723 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)

用的wepy框架

在setTimeout里边改变了data里边的数据,dom没有更新

请教下这个是bug还是我的使用问题?

  • 预期表现

到了setTimeout指定的时间,dom更新

  • 复现路径
  • 提供一个最简复现 Demo

以下是一个简单的wepy组件,onload中设置了延迟改变num的值,但是到了指定的时间,settimeout中的代码触发了,num的值也变了,但是没有更新到dom上,这个是什么原因:

<template>
 <view>{{num}}</view>
 <button [@tap](/user/tap)="changeNum">changeNum</button>
</template>

<script>
 import wepy from 'wepy';

 export default class Com extends wepy.component {
data = { num: 1 };
   methods = {
changeNum: function() {
this.num = 123;
     }
};
   onLoad = function() {
setTimeout(() => {
this.num = 222;
     }, 1000);
   };
 }
</script>

<style scoped>
 view {
border: 1px solid #00f;
 }
</style>
1 回复

你好,wepy相关问题还请到wepy的GitHub上提issue哈

回到顶部