今天在有个界面是要求在调用接口请求成功后,要刷新界面,但是我在请求在回调后,设置this.xxx=xxx,并没有触发页面的render,为什么呢???
回去详细的查看了Wepy的API,发现一个东西:
WePY使用脏数据检查对setData进行封装,在函数运行周期结束时执行脏数据检查,一来可以不用关心页面多次setData是否会有性能上的问题,二来可以更加简洁去修改数据实现绑定,不用重复去写setData方法。代码如下:
this.title='this is title';
但需注意,在函数运行周期之外的函数里去修改数据需要手动调用$apply方法。如:
setTimeout(()=>{
this.title='this is title';this.$apply();
},3000);
也就是说,所有的Promise的then,catch等方法,已经是在Wepy的函数周期之外了,如果是在这些方法里面设置属性值,就必须调用$apply方法,如果是在子Component里面就调用this.$parent.$apply()就行了