gpt4 book ai didi

java - GWT 历史 onValueChange() 未被调用

转载 作者:行者123 更新时间:2023-11-30 04:36:03 25 4
gpt4 key购买 nike

我在类中有一个实现 ValueChangeHandler<String> 的方法这个类是从 onModuleLoad() 中初始化的。像这样的方法

mainController = new MainController();
History.addValueChangeHandler(mainController);
mainController.initialise(History.getToken());

还有initialise()方法如下所示;

public void initialise(String initialToken) {
if (initialToken.equals("")) {
History.newItem(String.valueOf(HistoryTokens.MAIN_PAGE), true);
} else {
History.newItem(initialToken, true);
}
}

当应用程序以空白历史记录 token 启动时,即按下启动默认浏览器时,onValueChange()方法被调用,在应用程序运行时更改 url 会调用 onValueChange()方法。

但是,在空白浏览器选项卡中输入 URL,并在 URL 中输入 token ,即 http://127.0.0.1:8888/MyApp.html?gwt.codesvr=127.0.0.1:9997#mjh&jdfhfh=786543 ,不调用onValueChange()方法。当我点击 History.newItem(initialToken, true); 时,我很困惑if的一部分陈述。我认为这将确保 onValueChange()被称为。出了什么问题?

最佳答案

您应该始终在 GWT onModuleLoad() 末尾调用 History.fireCurrentHistoryState()。我认为这应该可以解决你的问题。

问题是,第一个历史事件(例如当您加载 page.com/#xyz 时)没有被 ValueChangeHandler 捕获,您必须使用 History.fireCurrentHistoryState() 来“伪造它”

关于java - GWT 历史 onValueChange() 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13504249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com