Динамическое начальное состояние в React Redux на основе реквизита из React Router v4

Есть ли способ загрузить динамическое начальное состояние в Redux? В моем случае я хотел бы, чтобы определенная переменная в хранилище зависела от того, на каком маршруте изначально находится пользователь.

Прямо сейчас мой обходной путь - не показывать какие-либо компоненты, пока они не будут полностью загружены. Я проверяю location.pathname на componentDidMount, а затем устанавливаю переменную на основе этого, а также переменную loaded в true в магазине, но мне интересно, есть ли более чистый способ сделать это.

установите начальное значение null или undefined в вашем initialState. в mapStateToProps вашего соединителя проверьте этот случай и используйте любое значение по умолчанию, необходимое вашему компоненту. или вы, вероятно, можете сделать что-то нестандартное в createStore() для этого объекта состояния, который устанавливает значение по умолчанию.

Derek 20.01.2019 02:21

@Derek, о, отлично, не знал о втором параметре ownProps, спасибо!

Chang Liu 20.01.2019 02:41
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
2
570
0

Другие вопросы по теме