我对我为 GWT 的历史机制找到的示例感到有些困惑。
查看并运行示例GWT History似乎不是很好。
历史通常被解释为应用程序更改的结果。
该示例有多个问题:
初始状态也是空令牌和令牌“page0”
--> “历史” Back 在“离开应用程序”前两次显示同一页面
历史和状态以某种方式间接同步。
- Tab 选择会引发一个选择事件,该事件会设置一个新标记。设置令牌会导致历史值更改,再次选择相同的选项卡 (?)。这种模式有点令人费解。
换个角度看问题会不会错?
我认为总是根据历史令牌更改状态会更干净。
在那种情况下ValueChange
将实现“状态渲染”。想要改变状态的按钮不会直接使用History.newItem()
方法,而是使用方法间接改变状态valueChange
。
例如
public void onValueChange(ValueChangeEvent<String> event) {
String token = event.getValue();
if(token.isEmpty()){
show("welcome");
}else if(token.equals("registration")){
show(token);
}
}
还有一个想要显示注册的按钮:
welcome = new Button("Registration", new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
History.newItem("registration");
}
});
这以某种方式使用历史来驱动应用程序状态。
这有什么问题,为什么到处都是反其道而行之?