首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GWT历史-是状态创建历史还是历史导致状态?

GWT历史-是状态创建历史还是历史导致状态?
EN

Stack Overflow用户
提问于 2013-02-10 12:46:32
回答 1查看 169关注 0票数 0

对于我为GWT的历史机制找到的例子,我感到有点困惑。

查看并运行示例GWT历史,它似乎不是很好。

历史通常被解释为应用程序中的更改所产生的结果。

该示例存在多个问题:

  • 初始状态也是空令牌和令牌"page0“。 ->“历史记录”后面在“退出应用程序”之前两次显示同一页。
  • 历史和国家在某种程度上是间接的。
代码语言:javascript
复制
- A Tab selection causes a selection event, which sets a new token. Settings the token causes a History Value Change, that selects the same tab again (?). That pattern is kind of mindtwisting.

从另一个角度来看待这个问题是否真的是错误的呢?

我认为,按照历史的象征,总是改变状态会更清洁。

在这种情况下,ValueChange将实现“状态呈现”。想要更改状态的按钮不会直接使用History.newItem()方法,而是使用valueChange方法间接地更改状态。

例如:

代码语言:javascript
复制
public void onValueChange(ValueChangeEvent<String> event) {
    String token = event.getValue();
    if(token.isEmpty()){
        show("welcome");
    }else if(token.equals("registration")){
        show(token);
    }
}

和一个想要显示注册的按钮:

代码语言:javascript
复制
welcome = new Button("Registration", new ClickHandler() {           
        @Override
        public void onClick(ClickEvent event) {
            History.newItem("registration");                
        }
    });

这在某种程度上使用历史来驱动应用程序状态。

这有什么不对,为什么到处都是相反的方法呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-11 00:01:41

GWT历史确实提供了一种设置令牌而不导致调用on历史记录更改方法。 History.newItem("registration", false);的方法

至于您专门针对GWT的建议,ValueChange将实现“状态呈现”,在需要传递多个字符串来设置状态的情况下,这是行不通的。在这种情况下,我设置了如上的令牌,然后使用MVC将需要的数据转发到视图以进行呈现。

在任何情况下,我肯定不会为了选择一个选项卡而通过onValueChange。我使用的是类似于tabPanel.selectTab(tabNum);的东西

FWIW,GWT思想的当前状态从历史发展到使用活动和地点

你可能想看到这一点,因为也许它更符合你正在努力做的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14797881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档