[英]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.