valueChangeListener returns 空值事件
event of valueChangeListener returns null value
如果我在 PickerField 上获得 valueChangeListener 的值,如果我第二次选择同一个客户,它 returns 为 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
上创建了一个示例项目
现在,如果新项与当前项具有相同的 ID,则 PickerField LookupAction 会调用 setValue() 方法两次(使用空值和选定项),以确保以前的项将被新项替换。这导致两次调用 ValueChangeListener 为 null,然后为新值。
这是 CUBA 的一个已知 API 问题,我们可能会在平台的下一个主要版本中尝试更改它,但现在您必须检查 null e.getValue()和绑定到 PickerField 的实体属性。
如果我在 PickerField 上获得 valueChangeListener 的值,如果我第二次选择同一个客户,它 returns 为 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
上创建了一个示例项目现在,如果新项与当前项具有相同的 ID,则 PickerField LookupAction 会调用 setValue() 方法两次(使用空值和选定项),以确保以前的项将被新项替换。这导致两次调用 ValueChangeListener 为 null,然后为新值。
这是 CUBA 的一个已知 API 问题,我们可能会在平台的下一个主要版本中尝试更改它,但现在您必须检查 null e.getValue()和绑定到 PickerField 的实体属性。