一个自定义组件,里面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 。这样组件就无法通过传值给属性来获取数据。
请高手指点应该如何处理?多谢多谢!
可以尝试在组件的wxml调用里面加上wx:if,让它onLoad赋值后满足条件再进行渲染
<attachments wx:if="{{lessonId != 0 }}" masterId="{{lessonId}}" />