onLoad 执行问题

onLoad: function () {
if (this.label) {
this.label.string = “Hello World”;
}
},
没有报错
改为onLoad: function () {
this.label.string = “Hello World”;
},时报错

是因为onLoad没有加载完吗?使用的v2.1.2版本

是因为在编辑器中没有将对应的label组件拖入到脚本中

有在编辑器中拖入label组件
cc.Class({
extends: cc.Component,

properties: {
    label: {
        default: null,
        type: cc.Label,
    },
    text: 'Hello, World!'
},

// use this for initialization
onLoad: function () {
    this.label.string = this.text;

},
});

改为 onLoad: function () {
if(this.label){
this.label.string = this.text;
}
},就不报错了

你label拖入后是否有保存场景,现在问题不是你的代码错误了,报错原因是你的this.label为null,也就代表着你的label还是并没有被脚本引入,如果无法找到问题,你可以上传一个DEMO包上来

NewProject.rar (1.1 MB)demo已经上传,请看看

报错的是这里的HelloWorld的label缺失,你的脚本绑定了两个地方,建议就绑定一个脚本。


这个是有label的,所以你if(this.label)条件跳过了在主节点上的报错,你看需要删除一个吧

Canvas上还有一个脚本没有拉label,直接把Canvas上的脚本remove掉就没问题了

的确是在canvas上有一个脚本,删除canvas上的脚本就可以了,这也太难查错了,谢谢。