解决微信小程序Wepy框架,在异步Promise回调后不触发界面更新问题

今天在有个界面是要求在调用接口请求成功后,要刷新界面,但是我在请求在回调后,设置this.xxx=xxx,并没有触发页面的render,为什么呢???

回去详细的查看了Wepy的API,发现一个东西:

WePY数据绑定方式

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()就行了

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文长时间没有更新 请跳转小程序框架wepy文档链接查看[https://developers.weixin.qq...
    你期待的花开阅读 10,267评论 2 14
  • 官方文档 快速入门 安装 生成工程 进入工程目录 实时编译项目 wepy build --watch 注意事项: ...
    ROBIN2015阅读 4,849评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,872评论 19 139
  • 她出生在六十年代初,一个普通的农民家庭,虽说家里不怎么富裕,但是她们姊妹四个,她是家里的老大,也是唯一的一个女娃,...
    开心星星阅读 3,110评论 1 0
  • 我本人呢签美国签证是基于马甲线大赛基础的,这是诱因对的…真正让我契而不舍的是塔塔说了一句话,她说美国签证如果能签的...
    墙角一朵小花阅读 4,336评论 0 1

友情链接更多精彩内容