收藏
回答

自定义组件 attached 与父页面 onLoad执行顺序问题,该如何传值?

一个自定义组件,里面attached执行的代码如下

attached() {
      console.log("attached:"+this.data.masterId)
      this.getData()
}

而调用它的页面里是这样

wxml: <attachments  masterId="{{lessonId}}" />

TS文件

onLoad(routeParams: any) {
      console.log('page onload')
      this.setData({
        lessonId: routeParams.id
      })
},


因为组件的参数是在wxml里面赋值的,而这个参数是onload时候获取的。

实际执行,通过控制台可以看到,是先调用 attached,再调用 onLoad 。这样组件就无法通过传值给属性来获取数据。

请高手指点应该如何处理?多谢多谢!

回答关注问题邀请回答
收藏

1 个回答

  • Y&K
    Y&K
    2021-11-10

    可以尝试在组件的wxml调用里面加上wx:if,让它onLoad赋值后满足条件再进行渲染

    <attachments  wx:if="{{lessonId != 0 }}" masterId="{{lessonId}}" />
    
    2021-11-10
    有用 3
    回复 1
    • 洪华敏
      洪华敏
      2021-11-12
      谢谢!试了一下,好像可行。但是挺别扭的
      2021-11-12
      回复
登录 后发表内容