【问题标题】:GWTP Presenter and View retaining old valuesGWTP Presenter 和 View 保留旧值
【发布时间】:2019-05-17 16:08:30
【问题描述】:

我正在使用 GWTP,我所有的演示者都扩展了 Presenter 类。如果我从 A 导航到 B,然后返回 A,那么表单 A 中的旧值仍然显示为旧值的副本,而不是新值。

如何让应用创建新的 Presenters 实例以避免显示旧值?

【问题讨论】:

    标签: java gwt gwtp


    【解决方案1】:

    Presenter 和 Views 的实例化通常很昂贵,因此 GWTP 建议将两者用作单例,视图是不必要的,因为 Presenter 将保留实例,因此它的行为类似于内部单例。在这种情况下,您当前的情况,只需根据您的视图的工作方式,在生命周期阶段“prepareFromRequest”、“onReveal”或“onReset”之一重置演示者状态。

    请注意,这样做比看起来要容易得多,如果您的视图与您的演示者不同步,这应该是您的情况,只需将代码从更新频率较低的生命周期(例如构造或onBind) 到更新频率更高(例如 onReveal 或 onReset),然后,每当您导航演示者并显示视图时,这将被正确更新,并且单例问题将变得无关紧要。

    如果你真的想创建一个非单例演示者,你可以手动进行绑定,而不是使用 AbstractPresenterModule#bindPresenter。如果您尝试在多个位置引用演示者,这可能会有点危险,并且演示者在重置期间将是相同的,但我认为每次显示都会是一个新实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-08
      • 1970-01-01
      • 2012-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多