Label 组件用脚本设置string后,node的宽度未变更

cc.Class({
extends: cc.Component,

properties: {
    label: {
        default: null,
        type: cc.Label
    },
    // defaults, set visually when attaching this script to the Canvas
    text: 'Hello, World!'
},

// use this for initialization
start: function () {
    alert(this.label.node.width); // 146
    this.label.string = '这是一段测试用的长文本';
    alert(this.label.node.width); // 146 未变更
    setTimeout(() => {
        alert(this.label.node.width); // 660 变更
    })
}

});

其中Label 的 Overflow设置的NONE

你好可以参考下这个帖子
https://forum.cocos.com/t/label/65851

非常感谢,回复真快,太给力了,creator加油!

和我想的一样,之前就是不知道下一帧的api,文档也没找到。

顺便反馈几个小问题,typescript没有Label类没有_updateRenderData方法的声明,还有Node类也没有parent属性的声明,目前我是自己加的声明,希望官方能改善。

好的 我们在后续版本中改善

但是又有新问题了,如果该node父节点有Layout组件,我想让Layout组件自动计算获取宽度,目前虽然拿到的Label的宽度了,但是Layout的宽度还是没变更,因为我Layout设置了padding,虽然可以直接代码里面写死padding,但是感觉有点不科学。希望官方能fix Label这个bug呀。

请问node该如何让下一帧立即生效,现在我想动态修改node的width,但是没有立即绘制