Задать вопрос
@mr_drinkens89

Как правильно сделать initialState в redux?

Всем доброго времени суток.
В своем проекте я использую Redux, и метод combineReducers.
Абстрактно, мой стор:
{
 oneListOfObjects:[],
 twoListOfObjects:[],
 threeListOfObjects:[],
}

Как правильно сделать "предзагрузку" данных в initialState? То есть чтобы на момент загрузки, мы имели бы такой вид стор:
{
 oneListOfObjects:[объект1,обьект2],
 twoListOfObjects:[объект3,обьект4],
 threeListOfObjects:[объект5,обьект6],
}

Заранее благодарю.
  • Вопрос задан
  • 4965 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Frontend-разработка на React
    10 недель
    Далее
  • ProductStar
    Разработка на React
    6 недель
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
Решения вопроса 1
mudrenokanton
@mudrenokanton
frontend dev
Вы когда создаете reducer, можете задать любой initialState. В доке пример:
import { VisibilityFilters } from './actions'

const initialState = {
  visibilityFilter: VisibilityFilters.SHOW_ALL,
  todos: []
}

function todoApp(state, action) {
  if (typeof state === 'undefined') {
    return initialState
  }

  // For now, don't handle any actions
  // and just return the state given to us.
  return state
}

Тут вместо пустого массива в вашем случае будет заполненный.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@KnightForce
Чувак выше прав, но можешь оставить так:
{
 oneListOfObjects:[],
 twoListOfObjects:[],
 threeListOfObjects:[],
}

А потом, например в constructor App (или что там у тебя оборачивает Provider) вызови запрос к серверу. Тут уж как хочешь. Например, если нужно переписать на React, а сервер не переписывать.

initState - это начальный store ля твоего проекта.
Ты можешь использовать один редьюсер и в нем обращаться к определенным полям store, но чтобы было проще - их расщепляют. В итоге каждый reducer работает со своим полем из store.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
от 250 000 до 300 000 ₽
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Екатеринбург
от 50 000 до 90 000 ₽