NGRX Entity Adapter - обновить идентификатор - PullRequest
0 голосов
/ 23 апреля 2020

Не могли бы вы сообщить мне, есть ли возможность легко отредактировать идентификатор в Entity Adapter? Я хотел бы иметь возможность редактировать его, но также избегать дубликатов.

Вот описание потока:

  1. Мой адаптер выглядит так:
   adapter = createEntityAdapter<Item>({
    selectId: (item: Item) => item.id
})

Я получаю массив предметов из BE:

    [{id:"start",value:"my value"},{id:"start2",value:"my value2"}]
Он превращается в сущность в редукторе:
     on(Actions.loadAll, (state, action) =>
            adapter.addAll(action.items, {
                ...state
            })
        ),
Каждый id указан как ввод, который можно редактировать для пользователя. Теперь я хотел бы при каждом изменении обновлять правильную сущность и ее идентификатор.

Как этого добиться? ngModel и adapter.update? Спасибо за любую помощь:)

1 Ответ

0 голосов
/ 23 апреля 2020

Нет способа обновить идентификатор сущности, потому что реализация ngrx зависит от значения entity.id.

Это означает, что вам нужно реализовать собственный редуктор, который удаляет (removeOne) сущность с помощью старый идентификатор и добавляет (upsertOne) новый объект с новым идентификатором.

...