@htmldeveloper

Как каждый раз выполнять action корневого компонента в react-router-4?

Существуют например такие урлы:

/
/foo
/foo/3


На корневом урле отрисовывается компонент <App />, в componentDidMount которого выполняется некий action. Когда я хожу по урлам дальше (/foo, /foo/3), то грузятся и другие компоненты, но экшн компонента App больше не срабатывает, что логично.

А как сделать так, чтобы все-таки каждый раз срабатывал? Кинуть разве что экшн в componentWillUpdate - но это безумие, он будет слишком часто вызываться..
  • Вопрос задан
  • 76 просмотров
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Сделайте так:

import React, { Component } from 'react';
import { withRouter } from 'react-router-dom';
import { someAcion } from '../somePlace';

class App extends Component {
  ...
  componentWillReciveProps(nextProps) {
    if (this.props.location !== nextProps.location) {
       this.props.someAciton();
    }
  }
  ...
}

const mapDispatchToProps = {
  someAction,
};

export default withRouter(connect(null, mapDispatchToProps)(App));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы