Мой компонент TranslationDetail передается id при открытии, и на основании этого внешний вызов api запускается в конструкторе класса, принимает данные в состояние и эти данные отображаются на TranslationDetail.
//Routing:
<Route path="/translation/:id" component={TranslationDetail}/>
//Class:
class TranslationDetail extends Component {
constructor(props){
super(props);
this.props.fetchTrans(this.props.params.id);
}
Все это работает отлично, если я ввожу URL вручную. В случае, если я хотел бы использовать реактивный маршрутизатор, например. для отображения следующего элемента, как показано ниже, URL-адрес изменяется, но вызов api не запускается, и данные остаются неизменными.
<button
type="button"
onClick={() =>
browserHistory.push(`/translation/${Number(this.props.params.id)+1}`)}>
Next
</button>
Пожалуйста, имейте в виду, что я новичок. Причина, по которой это происходит, я считаю, что конструктор запускается только один раз, поэтому больше не запускается вызов api.
Как я могу это решить? Нужно ли мне перечислить в реквизиты и вызвать функцию при изменении? Если да, то как?