Диспетчерское действие при изменении маршрута с BrowserRouter - PullRequest
0 голосов
/ 22 января 2020

Мне нужно отправлять действие Redux каждый раз, когда в моем приложении изменяется маршрут. К сожалению, эти ответы не применимы к моему делу, поскольку я должен использовать BrowserRouter вместо Router, а BrowserRouter не требует history проп. Есть ли другой способ сделать это? Я использую V4.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Комментарий Денниса дал рабочее решение с использованием хитов React. Создайте новый компонент следующим образом:

const RouteChange = withRouter(({ location }) => {
  const dispatch = useDispatch();

  useEffect(() => {
    dispatch({ type: "AN_ACTION" });
  }, [dispatch, location.pathname]);

  return null;
});

и просто включите его в root вашего приложения. Указанное действие будет отправлено при каждом изменении маршрута.

0 голосов
/ 22 января 2020

Вы можете использовать componentwillunmount в каждом классе реакции, и он будет работать нормально

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...