В моей программе есть несколько сеток, но они очень похожи, поэтому я решил сделать один редуктор для всех, чтобы мой код оставался красивым и СУХИМ. Когда я отправляю событие для изменения хранилища, я отправляю имя сетки в качестве аргумента вместе с payoload, и все записывается в хранилище под этим именем сетки.
Например: если я отправлю событие для изменения заголовка сетки каталога, то магазин будет выглядеть следующим образом: (Допустим, пользователи уже были в магазине)
grid: {
catalog: {
headers: {
some data
}
},
users: {
headers: {
some other data
}
}
}
У меня вопрос, как мне написать модульное начальное состояние? В настоящее время у меня нет начального состояния, кроме имен сетки, потому что без них мой код не работает. Когда мне нужно установить что-то как начальное, я должен включить это в свою функцию initializeGrid
, которая отправляет некоторые события, чтобы установить что-то похожее на начальное состояние.
Но без начального состояния мой редуктор довольно запутан, потому что почти в каждом случае мне нужно проверять, есть ли какое-то состояние или это первая запись.
Просто знайте, что я не ленив, но мое начальное состояние было бы длиной около 300 строк, и оно не было бы СУХИМ: /
Какое правильное решение?