关于小程序生命周期Components的onLoad优先于pages的attached()执行?

pages里的的talk  onLoad生命周期设置了

 onLoad(options){

  this.setData({"uid":options.uid,"nickname":options.nickname});

 },

talk.wxml里引用了Components的messagelist里的组件

<messagelist url="http://39.104.82.134/index.php/index/Message" to_uid="{{uid}}" wx:if="{{show_message_list}}" />

messagelist.js里的 attached优先于父talk  pages的onLoad执行,

onLoad里面没赋值完成uid,

messagelist.js里的attached就执行了,导致uid为默认的0。

正确应该是talk  pages的onLoad执行完成才是messagelist.js里的 attached执行?

要如何才能把talk pages的onLoad里面设置的uid带到messagelist.js里面?

talk.js代码如下:
image

messagelist.js代码如下:
image
image

控制台打印的信息如下:
image

阅读 2k
1 个回答

为什么要依赖生命周期,你期望prop变化能够在子组件监听到可以用observer;如果你一定想在生命周期中获取到setData的值,那就加个if,等到值set之后再显示子组件即可

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题