【问题标题】:State of Binder#hasChanges() after user takes back changes用户收回更改后 Binder#hasChanges() 的状态
【发布时间】:2026-02-09 22:55:02
【问题描述】:

对于没有绑定 bean 的绑定器,只要绑定字段发生更改,hasChange() 方法就会返回 true。但更改恢复后仍然是true。所以我正在寻找类似isEqualToInitialState() 的东西,以便只为真正的更改启用保存按钮。

是否有适合我意图的最佳实践?我也没有看到像hasChangesComparedTo(Bean bean) 这样的方法。

【问题讨论】:

    标签: vaadin vaadin-flow


    【解决方案1】:

    Binder.hasChange 只是一个“愚蠢”的跟踪器,无论是否有任何值 改变了。它没有“先前或原始值”的概念。

    如果您想将 binder 的状态与原始 bean 进行比较, 你必须自己做:

    1. (可选):为您的 bean 添加适当的 equals 方法,因此 比较更容易处理
    2. 保留原始值/bean 并在活页夹中设置副本(例如使用 readBean(orig) 然后writeBean(empty) 将数据放入 一个新鲜的物体)
    3. 比较原件和副本,然后做出相应的反应

    【讨论】:

      最近更新 更多