node.getComponent(cc.WXSubContextView)组件无效

  • Creator 版本:2.2.2

  • 目标平台:

  • 详细报错信息,包含调用堆栈:

  • 重现方式:

  • 之前哪个版本是正常的 :

  • 手机型号 :

  • 手机浏览器 :

  • 编辑器操作系统 :

  • 编辑器之前是否有其它报错 :

  • 出现概率:

  • 额外线索:

在cocos creator的主域中使用var xxx = this.node.getComponent(cc.WXSubContextView)时,cocos不会报错。但是将主域和子域都构建好,放入微信开发者工具时,会报错为 xxx is null. 图如下:
代码:

cocos预制件配置(预制件中无Canvas),是instantiate到一个scene中的。

微信开发者工具报错如下

恳请大牛点拨一二!!!感激不尽。。。

图传错了。。。。

代码是:(忽略上图)

这样写依然无法获取到组件。。。

顶一下。。。还是没能解决

你的 subCanvas 是什么类型的?顺便截图一下编辑器中是如何赋值 subCanvas 的

Hi 感谢回复,

subCanvas我现在是sprite+WXSubContextView组件,之前用了CC.Node发现不行,我就改了Sprite试试看

其中RankView挂载cRankView.js脚本,

cRankView中对subCanvas的声明

然后就是onShow方法下这两句了。。。onShow方法是这个预制件父节点调的

放在cocos里似乎没啥问题,挪到开发者工具就会报getComponent出错。。。

或者你发给我一下 demo,我看看吧

我之前试过用用CC.Node声明,然后用this.subCanvas来弄来着,但是是一样的。。。

好的我准备个demo,感谢。。

我这边测试是正常的

failedCase.zip (1.8 MB)

这个是我把我项目中其他东西都删了然后呈现的案例。。。还是会在开发者工具中出现错误。。。很神奇。。。麻烦帮忙看下,非常感谢了。

小小地顶一发…

看看项目设置中的模块设置有没有勾上 WechatSubContext 模块,是你剔除该模块了

hello,感谢! 那么想问下cocos 2.2.1/2.2.2版本这个模块的设置在哪里嘞?或者被包含在哪个模块里嘞?以下截图是我当前使用版本的模块列表…

如果没有的话,构建的时候是会自动帮用户添加的,我问问

我在重新打开的一个项目中,也可以实现该功能的正常使用,但是还是想在目前这个项目中把它使用起来。因为项目基础搭好了,担心整体迁移出现的不适配风险。

我提供的demo是讲我目前项目中资源删掉后保留的构建信息,所以可以复现这个问题。

感谢了!

我这边用 2.2.2 测试是正常的

:(

这是为啥呢…我们也没对引擎做改动啊…

我看到你的 demo 了,我看看

1.不是,是直接构建的。一直使用2.2.2版本。
2. 无报错
3. 在给您发送的demo有我未构建的项目(名称应该叫MJCOPY),您使用我提供的那个未构建的项目,构建完成后,也可以正常使用嘛?
4. 应该包含在MJCOPY文件夹中

好的,我这边构建看看,一会给你答复

这个应该是 bug,你先把 settings/project.json 里面的 excluded-modules WechatSubContext 删掉就可以了,我们这边排查看看,然后进行修复