情景是这样的:
- 从识别小程序码进入页面A
- 在该页面下进入一个二级页面B
- 返回A页面
- 退出小程序
- 再识别进入小程序页面A
此时出现了一个问题, 接口我都能顺利的调用, 但是页面A却白屏
我怀疑是页面A的setData并没有成功, 于是在setData第二参数传入function并且console出来
发现 两次均有执行到setData前的console
但是 第一次识别进入时有出现setData的回调成功信息, 第二次却没有
这个问题由于只能在正式环境调试, 比较麻烦
有人知道是什么原因吗?
相关代码: page onshow
提供一个测试的小程序码
问题已解决
大致原因是从二级页面返回的时候页面A调用onShow没有做任何操作, 退出再扫码进入页面A的时候, 微信会将页面A onUnload, 并且重新初始化页面, 在onshow中就可以拿到page实例, 问题是此时this是一个旧的page实例(从打印中的this. __wxExparserNodeId__可以判断与退出小程序时的this. __wxExparserNodeId__相同), 即我setData时, 把值set到一个旧的page实例中, 导致新的page没有渲染成功
解决方法:
在二级页面返回page onshow的时候重新调接口setData即可
建议 你放在onshow 方法试试
你好, 现在已经是放在onshow中, 确定代码有执行到, 但是setData没有成功
贴出来问题代码看下吧。。
代码已经贴上去了9 9