小程序
小游戏
企业微信
微信支付
扫描小程序码分享
如何解决组件component中调用onLoad时获取options参数报错,显示Cannot read property 'dstid' of undefined;?
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
子组件里并没有Page中的onLoad生命周期,也没有办法直接获取到页面传参值。只能在父组件传值给子组件后再处理。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
onload里面加层判断 if(options&&option.dstid)
你调用 this.onLoad(),并没有传递参数,然后你在 onLoad 函数里去读取参数当然报错啊
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
子组件里并没有Page中的onLoad生命周期,也没有办法直接获取到页面传参值。只能在父组件传值给子组件后再处理。
onload里面加层判断 if(options&&option.dstid)
你调用 this.onLoad(),并没有传递参数,然后你在 onLoad 函数里去读取参数当然报错啊
第一,ready 函数里没有 options 这个变量,所以你这还是报错。
第二,component 中没有 onLoad 生命周期,所以你写的这个 onLoad 对于小程序来说只是一个普通函数,
第三,不建议手动调用 生命周期函数
第四,如果你实在是要在 component 中 调用 page 的 onLoad 生命周期,可以在组件里抛出一个事件,由页面的函数接收事件然后手动调用 onLoad 函数(非常非常不建议,但最后还得看你自己了)
第五,建议的方案:如果你确实有业务需求需要在页面 onLoad 时执行某个逻辑,然后在 component 渲染完成的时候再执行相同的逻辑,你可以将相同的逻辑提取成 公共函数 或者 模块,你就可以在 onLoad 中、在 component 渲染完成时调用 公共函数 或 模块了,这样就没有直接调用生命周期函数了