【问题标题】:event of valueChangeListener returns null valuevalueChangeListener 事件返回空值
【发布时间】:2016-11-03 09:40:00
【问题描述】:

如果我在 PickerField 上获取 valueChangeListener 的值,如果我第二次选择同一个客户,它会返回 null。

这是一个 vaadin 错误吗?

@Named("fieldGroup.customer")
PickerField customer;


@Override
public void init(Map<String, Object> params) {
    super.init(params);

    customer.addValueChangeListener(e -> {
        if (e.getValue() != null) {
            showNotification("e.value: " + e.getValue(), NotificationType.HUMANIZED);
        } else {
            showNotification("e.value is null", NotificationType.ERROR);
        }
    });
}

我在GitHub上创建了一个示例项目

【问题讨论】:

  • 可能您“取消选择”它,因此值已更改,然后使用新选择的条目触发新事件。 (只是一个快速的猜测)

标签: vaadin cuba-platform


【解决方案1】:

现在 PickerField LookupAction 调用 setValue() 方法两次(使用 null 值和选择)如果新项目与当前项目具有相同的 id 以确保前一个项目将被新项目替换。这会导致两次调用 ValueChangeListener 时使用 null,然后使用新值。

这是 CUBA 的一个已知 API 问题,我们将尝试在平台的下一个主要版本中进行更改,但现在您必须检查 null e.getValue() 和绑定到选择器字段。

【讨论】:

    猜你喜欢
    • 2010-12-24
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2015-11-19
    相关资源
    最近更新 更多