У меня есть запрос о вложенных состояниях Redux в React Boilerplate , и я был бы очень признателен, если бы кто-нибудь помог мне разобраться с этим.
Надеюсь, это будет достаточно просто, так как это фундаментальный вопрос.
В соответствии с документацией о редуксе, наиболее целесообразно хранить состояние редукса как домены.
{
simpleDomainData1: {....},
simpleDomainData2: {....},
entities : {
entityType1 : {....},
entityType2 : {....}
},
ui : {
uiSection1 : {....},
uiSection2 : {....}
}
}
Как достичь этой государственной структуры в react-boilerplate
? Я создавал свои Контейнеры, используя встроенные генераторы, и держал их все на одном уровне, например:
App
|__ Components
|__ Containers
|__ Container1
|__ Container2
|__ Container3
|__ Container4
:
:
Мое избыточное состояние супер нормализовано, вот так:
{
route: {
location: {
....
}
},
container1: {
data: {}
},
container2: {
data: {}
},
container3: {
data: {}
},
container4: {
data: {}
}
}
Но сейчас я нахожусь в месте, где мне нужно вкладывать контейнеры 2 и 3 в контейнер 1 (согласно бизнес-логике). Как я могу также отражать эту структуру в моем магазине редуксов?
{
route: {
location: {
....
}
},
container1: {
data: {
container2: {
data: {...}
},
container3: {
data: {...}
},
}
},
container4: {
data: {}
}
}
Как мы можем использовать injectReducer
для реализации вложенных состояний? Или есть другой подход, который вы все используете? ТИА !!
Я попытался настроить все редукторы для Container1
, определенные в /Container1
, что дало мне контроль над всем состоянием, но это похоже на анти-шаблон
Я еще не пробовал вложить Containers
2 и 3 в Container1
, потому что я не мог понять, как утилита injectReducer
будет работать в этих обстоятельствах.
(я также опубликовал это на Gitter)