Java GWTP演示者和视图保留旧值
我正在使用GWTP,我的所有演示者都扩展了Presenter类。如果我从A导航到B,然后再导航回A,则表格A中的旧值仍会显示,而不是新值,就像它显示旧值的副本一样Java GWTP演示者和视图保留旧值,java,gwt,gwtp,Java,Gwt,Gwtp,我正在使用GWTP,我的所有演示者都扩展了Presenter类。如果我从A导航到B,然后再导航回A,则表格A中的旧值仍会显示,而不是新值,就像它显示旧值的副本一样 如何使应用程序创建演示者的新实例以避免显示旧值?演示者和视图的实例化成本通常很高,因此GWTP建议将两者都用作单个实例,视图是不必要的,因为演示者将保留该实例,使其行为类似于内部单个实例。在这种情况下,您当前的情况下,只需在生命周期的某个阶段prepareFromRequest、onReveal或onReset上重置presenter
如何使应用程序创建演示者的新实例以避免显示旧值?演示者和视图的实例化成本通常很高,因此GWTP建议将两者都用作单个实例,视图是不必要的,因为演示者将保留该实例,使其行为类似于内部单个实例。在这种情况下,您当前的情况下,只需在生命周期的某个阶段prepareFromRequest、onReveal或onReset上重置presenter状态,具体取决于视图的工作方式 请注意,这样做要比看起来容易得多,如果您的视图与演示者不同步(这应该是您的情况),则只要将代码从更新频率较低的生命周期示例construction或onBind移动到更新频率较高的示例onReveal或onReset,然后在导航演示者并显示视图时,这将被正确更新,单例问题将变得无关紧要 如果确实要创建非单例演示者,可以手动执行绑定,而不是使用AbstractPresenterModulebindPresenter。如果您尝试在多个位置引用演示者,这可能有点危险,而且在重置过程中演示者也将是相同的,但我认为在每个展示上都会有一个新实例