0

我有一个定义所有状态的视图:

<s:Group xmlns="...." currentState="default">
 <s:states>
  <s:State name="default" stateGroups="state1,state2" />
  <s:State name="custom" />
 </s:states>

 <s:Label text="Custom" text.state1="Item 1" />
 <s:Label text="Custom" text.state2="Item 2" />

</s:Group>

当视图加载时(使用 currentState == 'default'),标签显示:

Item 1
Item 2

当它切换到“自定义”时:

Custom
Custom

这是意料之中的。现在,我想更改“自定义”状态,使其包含 stateGroup 'state1'。

  1. 我通过将新值推送到“自定义”状态组来更改“自定义”状态,但这不起作用,所以......

  2. 我已经替换了“自定义”状态:

    this.states[1] = new State({name: 'custom', stateGroups:['state1']});

反省视图后,我看到“自定义”状态现在在 stateGroup 属性中有一个“状态 1”。

这就是问题所在,当切换到“自定义”状态时,第一个标签仍然显示“自定义”,而不是预期的“项目 1”。如果我将 'state1' 添加到 'custom' 并重新编译,它工作正常。

那么有没有人有关于强制视图重新读取状态并正确绘制视图的提示?

谢谢,迈克尔

4

0 回答 0