Я нигде не мог найти ответ, потому что у меня ничего не получалось, поэтому я начинаю новую тему.Пожалуйста, не отмечайте его как дубликат
Router.js:
<Switch>
<Route path="/" exact component={Home} />
<Route exact path="/p/:uid" component={Profile} />
</Switch>
Profile.js
constructor(props) {
super(props);
this.state = {
loading: true,
profile_user_id: this.props.match.params.uid,
};
}
Затем, позже в Profile.js, я запускаю выборку для получения данных из бэкэнда и сохраняю эти данные в состояние, используя this.setState ({...}).Когда рендерится компонент Profile, все выглядит нормально.
В Router.js есть также ссылка:
<Link to={"/p/" + this.state.ntuser.tag}>Profile</Link>
.., которая должна перейти в ваш собственный профиль.Поэтому, когда ваш идентификатор пользователя равен 1, и вы посещаете профиль пользователя с идентификатором 22, ваш URL будет / p / user22, а ссылка будет указывать на /p/user1.
Проблема в том, что дажеНесмотря на то, что профили отображаются правильно, компонент Profile не становится повторно отображаемым, когда вы нажимаете на ссылку (которая должна направить вас в / p / user1 и показать ваш профиль вместо этого).Я также пытался сохранить местоположение из реакции-маршрутизатора в состояние, поэтому при каждом изменении URL-адреса он будет перехвачен в componentWillReceiveProps () и внутри я обновляю состояние.Но все равно ничего.Есть идеи?
PS: я использую React.Component