为什么有的自定义组件在onload中改变自定义组件的数据无效?
发布于 5 年前 作者 xiabai 10549 次浏览 来自 问答

在网上扒拉了个自定义多选组件multiple_selection,但是无法在onload使用this.setData更新请求的数据到自定义组件的变量就无效,只能够使用静态的数据,我扒拉的另外一个自定义组件这样就可以,请问这是为什么呢?

2 回复

https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/lifetimes.html

  • 组件实例刚刚被创建好时, created 生命周期被触发。此时,组件数据 this.data 就是在 Component 构造器中定义的数据 data 。 此时还不能调用 setData 。 通常情况下,这个生命周期只应该用于给组件 this 添加一些自定义属性字段。
  • 在组件完全初始化完毕、进入页面节点树后, attached 生命周期被触发。此时, this.data 已被初始化为组件的当前值。这个生命周期很有用,绝大多数初始化工作可以在这个时机进行

微信小程序的组件中没有onLoad生命周期,还有就是,在回调函数中使用箭头函数用this是没问题的,用形如function(){}的回调才需要将this引用包装给别的变量

this的指向问题。

回到顶部