为什么有的自定义组件在onload中改变自定义组件的数据无效?
在网上扒拉了个自定义多选组件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引用包装给别的变量