最近在做一个需求时偶尔发现一个 bug ,排查很久后发现是因为调用
this.selectComponent时没有获取到组件的问题。
分析
- 没有在父组件渲染时的生命周期中调用,所以不会是页面和组件的渲染流先后问题
- 在其地方调用时能获取到,所以不会是组件的问题
- 只有在某些时间点调用才会是 null ,分析那些时间点所做的操作
原因
- 在那个时间点里改变的一个值的判断,而组件使用
wx:if来判断是否显示组件,而当不显示组件时,调用this.selectComponent为 null
总结
- 当使用
this.selectComponent获取组件前,应该检查组件是否有使用wx:if,如果有使用的话应该考虑是否存在上面的问题,然后再单独处理。

本文探讨了在特定条件下使用this.selectComponent获取组件出现null的情况,并深入分析其原因在于组件显示受wx:if控制。通过实例分享了解决方案及注意事项。

3129

被折叠的 条评论
为什么被折叠?



