Angular: повторно используйте редуктор и селекторы в разных корнях (без использования redux)
У меня разные маршруты
/ отдел
/ кандидаты
/ кандидатский отдел
Я должен использовать ту же структуру редуктора (состояние и действие) в / кандидаты и / кандидаты-отдел. Часть-кандидат является общей с незначительной разницей в получении данных из api и хранении этих данных.
поэтому / кандидаты будут перечислять всех кандидатов, но для / кандидата-отдела у нас есть список отделов, в котором показаны кандидаты, соответствующие этому отделу.
Есть ли способ использовать один и тот же магазин / действие / редуктор из / кандидаты в / кандидатский отдел с разницей только в функциональных ключах как в / кандидаты, так и в / кандидаты-отдел.
Мне также нужно повторно использовать селекторы.
1 ответ
Ngrx предоставляет единое хранилище для одного StoreModule.forRoot
. Все его дети будут использовать один и тот же магазин.
Если вы хотите добиться желаемого поведения, вам необходимо изменить структуру своего приложения так, чтобы StoreModule.forRoot
вызывается в дочернем модуле, принадлежащем механизму.
Если вам нужно позвонить StoreModule.forRoot
в AppModule
из-за других зависимостей, то плохие новости, нет способа разделить контексты для дочерних модулей родителя с помощью StoreModule.forRoot
.
Если нужно - попробуйте добавить к своим действиям свойство, указывающее на ключ. И затем уважайте этот ключ в редукторах и селекторах. Это требует большего количества кода, но в настоящее время это единственный способ разделить его.