現在GWTプロジェクトで作業中です。私は共通のブロックを複数のページ間で共有しています。その共通のブロックにいくつかのアクションボタンがあり、ページにはそれらのアクションボタンをクリックしてイベントを開始するハンドラがあります。GWT - 同じイベントで複数のハンドラを処理する方法
私が直面している問題は、ページAのアクションボタンの1つをクリックすると、事前に登録されたページBのハンドラも呼び出されるということです。
私が考えていた解決策は、ページからハンドラを削除して、同じアクションボタンイベントに対するハンドラが登録されているページが1つだけになるようにすることでした。
まず、私はアクションボタンのクリックイベントに登録し、保存HandlerRegistrationオブジェクトがのAddHandlerメソッドから返さ:
HandlerRegistration actionButtonClickEventHandlerRegistration=eventBus.addHandler(CommonBlockActionButtonClickedEvent.TYPE, someHandler);
そして、ページ変更イベントに、私が以前に保存されたHandlerRegistrationオブジェクト
からremoveHandlerを呼び出しますeventBus.addHandler(PageChangeEvent.TYPE, new PageChangeEventHandler() {
@Override
public void onMainPageChange(PageChangeEvent event) {
actionButtonClickEventHandlerRegistration.removeHandler();
}
});
だから、私は私のアプリを出せとそれらのページのうちの2つに行くとき、私はこのエラーを取得することを除いて、すべてのページにそれを実行します。
あなたは私がこのエラーまたは別の方法で問題を解決する理由を知っていますか?
ありがとうございます!