[英]GWT History - Does state create History or History results in state?
我为GWT的历史记录机制示例感到困惑。
查看并运行示例GWT历史记录似乎不太好。
历史通常被解释为应用程序中的更改所导致的结果。
该示例存在多个问题:
初始状态还包括空令牌和令牌“ page0”
->在“离开应用程序”之前,“历史记录”返回两次显示同一页面
历史和状态以某种方式间接地同步。
从另一个角度看问题会错吗?
我认为始终根据历史记录令牌更改状态会更清洁。
在这种情况下, ValueChange
将实现“状态呈现”。 想要更改状态的Button不会直接执行此操作,而是使用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");
}
});
这是以某种方式使用历史记录来驱动应用程序状态。
这有什么问题,为什么到处都相反呢?
GWT历史记录确实提供了一种设置令牌的方法, 而不会导致将更改历史记录的方法称为 History.newItem("registration", false);
至于仅针对GWT历史记录的建议,ValueChange将实现“状态呈现”,在您需要传递多个String来设置状态的情况下,该方法将无效。 在这种情况下,我如上所述设置令牌,然后使用MVC将需要的任何数据转发到视图以进行渲染。
无论如何,我绝对不会通过onValueChange来选择一个选项卡。 我使用的是类似tabPanel.selectTab(tabNum);
类的东西tabPanel.selectTab(tabNum);
FWIW,GWT思维的当前状态已从历史变为使用活动和场所
您可能希望看到它也许更好地与您要尝试的内容保持一致。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.