#reactjs #redux #react-redux #react-router #context-api
#reactjs #сокращение #react-redux #react-маршрутизатор #реагировать-контекст
Вопрос:
Как мне получить доступ к контексту в моем приложении?. Я столкнулся с ошибкой react-router и redux, когда я не получал свой маршрут из состояния, и из-за этого я не получал match.props, чтобы я мог задать путь. Моя цель — использовать контекст для задания пути моего маршрута.
Ответ №1:
Обычно не рекомендуется сохранять состояние навигации в Redux.
Вы можете получить доступ к данным из контекста маршрутизатора react с помощью перехватов useHistory
, useLocation
, useParams
, и useRouteMatch
.
Вероятно, это то, что вы хотите, оно возвращает текущий путь, например "/users/joe"
:
const {pathname} = useLocation();
Если вы хотите, чтобы шаблон пути соответствовал Route
, например "/users/:username"
, тогда вы бы использовали:
const {path} = useRouteMatch();
Комментарии:
1. Как я могу сделать это динамически, не создавая разные файлы для разных маршрутов?
2. Можете ли вы лучше объяснить, что вы имеете в виду? Эти перехваты
useLocation
иuseRouteMatch
являются динамическими для текущей страницы. Вы можете создать пользовательский хук, который использует их, но я не уверен, какова ваша фактическая цель.