页面onLoad执行时机确实是在所有组件初始化完成之后再去执行,所以这样在使用过程中可能会面临一个问题, 代码如下:
解释: info标签为一个自定义组件,我们需要通过自定义属性传递值(reportId)
<header></header>
<info reportId="{{reportId}}"></info>
JS代码:data中reportId 由reload执行后得到
Page({
data: {
reportId: 0
},
onLoad: function (options) {
console.log('options', options)
this.setData({
reportId: options.reportId
})
}
});
上面这种情形就会出现组件拿不到重新赋值的reportId。
解决办法:暂时用条件渲染(wx:if)来让组件渲染, 如 !== 0时渲染
<header></header>
<info reportId="{{reportId}}" wx:if="{{reportId !== 0}}"></info>