页面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>

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

脸朝大海, 春暖花开 ----江大脸