Доступ к контексту маршрутизатора React

#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 являются динамическими для текущей страницы. Вы можете создать пользовательский хук, который использует их, но я не уверен, какова ваша фактическая цель.