为什么有的自定义组件在onload中改变自定义组件的数据无效?

发布于 6 年前作者 xiabai10884 次浏览最后编辑 6 年前来自 ask

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

2 回复
wei65
wei651 楼5 年前

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引用包装给别的变量

sunli
sunli2 楼4 年前

this的指向问题。