引入激励视频组件切换页面遇到updateTextView fail错误原因
发布于 4 年前 作者 zliao 5160 次浏览 来自 分享

场景

在之前的开发过程中,发现只要有视频激励组件的页面,一旦遇到切换页面的时候,就会报错updatexxxview fail截图如下。

大段大段的未找到视图,移除失败。在社区中也有相应的bug反馈,但是并由没给出具体的原因是什么。我一直以为是微信本身的bug,到现在未知我也不知道具体是不是微信的bug😄。同时也怀疑过是不是使用了uni框架造成的原因,虽然报错了,但是却没有造成使用功能上的异常,花了部分经历也没找出个所以然,所以搁置没管了。

原因

现在回过头来看看,根据报错的信息,是移除组件的时候没有找到具体的视图,那么问题很有可能在生命周期的 hide unload当中,今天鬼使神差的把 在onUnload中把

 //销毁激励广告
        if (videoAd.destroy) videoAd.destroy();
        videoAd = null;

这行代码给注销了,神奇的是之后就再也没有上述的问题发生了。这么想来应该是 视图已经被卸载掉了,而激励广告依然在执行destory操作,在操作中发现找不到视图所以报错。这就是为什么报错总是发生在切换页面的时候。

解决途径

我没有在文档或者社区中找到,应该在合适销毁视频激励组件的回答。但是官方却给出了destroy的方法。在小游戏当中视频激励组件是单例模式,在小程序中视频激励组件是页面单例模式。所以这里是不是可以认为,根本不需要手动执行销毁视频激励组件的方法。或者这就是一个bug

1 回复

没有用,我没有手动destroy一样报警什么update的,有没有别的解决办法

回到顶部