Компонент не повторный рендеринг при нажатии на ссылку - PullRequest
0 голосов
/ 23 ноября 2018

Я использую свойство Link реагировать, чтобы перейти на тот же URL, но с параметром diffrent.Но мой API больше не вызывает, так как я помещаю часть вызова API в componentDidMount () . При щелчке URL мое изменение параметра URL.Ниже приведен код.

componentDidMount(){ 
   let profile_id = window.localStorage.getItem('profile_id');
   if(profile_id && profile_id!==''){
     this.props.fetchSingleProfile(profile_id)          
   }
}

Первый раз, вызов API и данные успешно обработаны.Ниже показано, как я использую ссылку.

<Link to={this.userId}>Next</Link>

Теперь при нажатии на ссылку я успешно перенаправлен на URL-адрес предоставления, но, как я уже говорил, * Компонент рендерит снова при успешной маршрутизации, но APIбольше не звонит".Есть ли что-то в реакции, которая знает об этом, мой URL-адрес изменен, теперь снова вызовите API.

Примечание: Могу ли я использовать любой метод жизненного цикла, например: componentWillReceiveProps, но яне хочу снова вызывать API.

1 Ответ

0 голосов
/ 23 ноября 2018

Но мой API больше не вызывает, так как я помещаю часть вызова API в componentDidMount ().

У вас тот же маршрут, поэтому отображается тот же <Route>.Все вложенные компоненты остаются прежними, поэтому вместо перемонтирования они просто обновляются.

У вас есть несколько возможных способов справиться с этим:

  1. Получать данные не только на componentDidMount, но и наcomponentDidUpdate
  2. Используйте key до компонент перемонтирования

Это невозможно сделать только с react-router * <Link />, поскольку itна самом деле это не его ответственность

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