React-Router + React Hooks с использованием withRouter

Я начинаю использовать хуки React в своем приложении, но кажется, что есть препятствие за препятствием, которое нужно выяснить. Я не уверен, что это из-за кривой обучения или из-за того, что зависимости не готовы использовать эту новую реализацию. В любом слючае..

До хуков мы использовали HOC для подключения к определенному API, будь то Redux, React-Router и т. д. В моем случае я хочу получить доступ к своим свойствам React-Router (история, местоположение).

Обычно это было бы так же просто, как сделать это в нижней части файла:

export default withRouter(SomeComponent);

Но теперь с хуками я не уверен, как получить доступ к этим данным.

Как я могу получить доступ к данным того же типа из реагирующего маршрутизатора с новыми хуками React?

HOC все равно должен работать, вас не заставляют использовать только хуки

Apolo 28.05.2019 10:00

Хм, я понимаю, но есть ли способ сделать это чистым крючком? Мы должны смешивать HOC с хуками? Я исходил из того, что мы должны попытаться сделать все с помощью хуков и потихоньку избавиться от компонентов класса и HOC.

Phillip 28.05.2019 10:02

hoc в любом случае предоставит дополнительные реквизиты. Эта проблема с реактивным маршрутизатором — это то, что вы ищете: github.com/ReactTraining/реагировать-маршрутизатор/issues/6430

Apolo 28.05.2019 11:17

Не отвечает на ваш вопрос, но если вы открыты для альтернативы, взгляните на мой маршрутизатор на основе крючков. Он поставляется с крючками из коробки: github.com/lusito/реагировать-роутер-тс

Lusito 05.07.2019 22:21

Вы взглянули на это? github.com/CharlesStover/использование-реакция-маршрутизатор

Jayant Bhawal 19.07.2019 11:58
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
18
5
11 626
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Согласно комментарию Тима Мозеса к другому ответу, у реактивного маршрутизатора теперь есть хуки для этого. Пример кода взят из Документация по хукам React:

import { useHistory } from "react-router-dom";

function HomeButton() {
  let history = useHistory();

  function handleClick() {
    history.push("/home");
  }

  return (
    <button type = "button" onClick = {handleClick}>
      Go home
    </button>
  );
}

Обновленный URL ссылки: v5.reactrouter.com/web/api/хуки

Justin Dalrymple 17.01.2022 23:57

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