引用自定义组件属性问题



第一张图引用的是第二张图的属性charaId,但是在运行的时候还是会提示btnLvlv.js:18 Uncaught TypeError: Cannot set property ‘charaId’ of null求解

这样写:
var node = cc.find(“myNode”);
var myNode = node.getComponent(cc.myNode);
var charaId = myNode.charaId;

然后断点看哪一个数据又问题,

目测myNode上没有cc.myNode组件

getComponent函数要传入组件名称或者类型(你自定义的就传你第二张图的脚本名称字符串)

Uncaught TypeError: Cannot read property ‘charaId’ of null
按照这样写,第三行报错了,不知道为什么

node.getComponent(cc.myNode) 返回空值,就是找不到cc.myNode这个组件。

是第三行var charaId = myNode.charaId;报错,也就是找不到 myNode组件上的 charaId属性,这就很奇怪了,我明明在myNode的properties里面写了这个属性的。

你应该先关注第一个错误:getComponent: Type must be non-nil。意思是你给getComponent传了一个空值,那它肯定找不到组件,返回一个null,而null是没有charaId属性的,所以报第二个错。
你的cc.myNode是什么?为什么是空值?你把自己的类放到cc下面了吗?getComponent要传进一个类或者类名字符串。你第二张图的文件名是什么,就把文件名传给getComponent试试,比如"b.js"就getComponent(“b”)。

把“cc.myNode”改成"myNode"……谢谢