Изменения UserPicker не зарегистрированы

Я должен отредактировать два объекта одного и того же источника данных. Я использую виджет UserPicker, чтобы изменить человека, прикрепленного к объектам (выбирая только электронную почту).

В начале у меня есть:

  • ObjectA {owner: owner1@sample.com }
  • ObjectB {владелец: owner1@sample.com }

После этого я хочу изменить владельца ObjectA на Owner2. Это работает хорошо.

Затем, используя тот же виджет редактирования (с другим элементом источника данных), я хочу также изменить владельца ObjectB на Owner2. Однако это не сработает, так как виджет UserPicker не регистрирует изменение от Owner1 -> Owner2. Это происходит из-за того, что UserPicker сохранил значение Owner2 из первого внесенного мной изменения (поэтому приложению кажется, что я делаю изменение Owner2 -> Owner2 .. onChange не запущен, источник данных не сохранен).

Я пытался изменить значение виджета при прикреплении, но мне еще предстоит заставить его работать. Это тоже нужно исправить на стороне AppMaker?

Спасибо за вашу помощь, пожалуйста, задавайте уточняющие вопросы, если вы не понимаете.

1 ответ

Решение

Хорошо, на тот случай, если у кого-то еще возникнет эта проблема, пока исправление ошибки все еще находится в работе (хотя я сообщил об ошибке). Вот как я с этим справился:

Виджет UserPicker onDetach:

if(widget.datasource.item.OwnerEmail !== widget.value) {
  widget.datasource.item.OwnerEmail = widget.value;
}

Это гарантирует, что изменение значения сохраняется в записи в любом случае, когда виджет отключается.

Однако в этом решении отсутствует автоматическая проверка (которая по умолчанию выполняется в виджете UserPicker). Таким образом, вам может потребоваться убедиться, что введенное значение на самом деле является адресом электронной почты, в этом решении нет никаких гарантий.

Возможно, есть лучшие способы сделать это, но это просто быстрое решение, которое я придумал.

Другие вопросы по тегам