Адаптер сущностей ngrx addAll и вложенное состояние - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть сценарий, в котором у меня есть список пользователей на странице пользователей.У каждого пользователя есть свой список приложений, и при щелчке пользователя отображается соответствующий список приложений.Я хотел бы использовать адаптер сущностей ngrx, но сначала мне нужно спроектировать свое состояние.Один из вариантов такой:

const state = {
   usersState: {
      entities: {},
      apps: {
         entities: {}
      }
   }
}

А другой такой:

const state = {
   usersState: {
      entities: {},
   },
   appsState: {
      entities: {}
   }
}

Поскольку на странице пользователя нет приложений, первый вариант имеет для меня больший смысл, но сПри таком подходе у меня возникает проблема: как мне использовать метод addAll адаптера?Насколько я понимаю и исправьте меня, если я ошибаюсь, addAll принимает полезную нагрузку, которая представляет список элементов в качестве первого параметра, состояние в качестве второго параметра и каким-то образом объединяет их вместе.Можете ли вы показать пример использования адаптера для обновления вложенного состояния?Или может быть решение пойти на второй вариант?Спасибо.

1 Ответ

0 голосов
/ 01 февраля 2019

Адаптер отвечает только за одну сущность, при этом я думаю, что можно управлять дочерним состоянием.Чтобы это работало, вы должны создать два адаптера, это будет выглядеть примерно так:

return {
  ...state,
  apps: {
    entities: appAdapter.addAll(payload.apps, state.apps)
  }
}

Примечание, вы должны попытаться сохранить ваше состояние нормализованным .

...