Angular: повторно используйте редуктор и селекторы в разных корнях (без использования redux)

У меня разные маршруты

/ отдел

/ кандидаты

/ кандидатский отдел

Я должен использовать ту же структуру редуктора (состояние и действие) в / кандидаты и / кандидаты-отдел. Часть-кандидат является общей с незначительной разницей в получении данных из api и хранении этих данных.

поэтому / кандидаты будут перечислять всех кандидатов, но для / кандидата-отдела у нас есть список отделов, в котором показаны кандидаты, соответствующие этому отделу.

Есть ли способ использовать один и тот же магазин / действие / редуктор из / кандидаты в / кандидатский отдел с разницей только в функциональных ключах как в / кандидаты, так и в / кандидаты-отдел.

Мне также нужно повторно использовать селекторы.

1 ответ

Ngrx предоставляет единое хранилище для одного StoreModule.forRoot. Все его дети будут использовать один и тот же магазин.

Если вы хотите добиться желаемого поведения, вам необходимо изменить структуру своего приложения так, чтобы StoreModule.forRoot вызывается в дочернем модуле, принадлежащем механизму.

Если вам нужно позвонить StoreModule.forRoot в AppModule из-за других зависимостей, то плохие новости, нет способа разделить контексты для дочерних модулей родителя с помощью StoreModule.forRoot.

Если нужно - попробуйте добавить к своим действиям свойство, указывающее на ключ. И затем уважайте этот ключ в редукторах и селекторах. Это требует большего количества кода, но в настоящее время это единственный способ разделить его.

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