В одном из моих контейнеров (доступ к компоненту + редукс) я пытаюсь сделать это:
function mapStateToProps (state) {
return {
url: state.projects.byId[state.selection.projectId].url
};
}
Мое начальное состояние в редюсере — пустой объект {}
. Когда мой компонент запускается и работает, он запрашивает некоторые данные из API для заполнения состояния. Однако, поскольку изначально мое начальное состояние пусто, я получу ошибку, что url
не определено. Справедливо.
Одно решение, которое я придумал (и то, что я обычно делаю), состоит в том, чтобы создать начальное состояние с некоторыми фиктивными данными, подобными тем, которые я в конечном итоге получу из API.
Тем не менее, это первый крупный проект, над которым я работаю, и мое состояние становится довольно вложенным и довольно глубоким, поэтому мне интересно, есть ли что-то лучше? Я также не уверен, что решение, которое я придумал, является лучшей практикой.
url
в своем компоненте? Вы можете визуализировать его условно вместо использования фиктивных данных. - person devserkan   schedule 27.11.2018lodash.get
или что-то подобное (gist.github.com/harish2704/) для доступа к материалам без прерывания, если они недоступны. - person enapupe   schedule 27.11.2018