Как обновить состояние в дочернем компоненте, используя параметры React Router? - PullRequest
0 голосов
/ 25 мая 2019

Я пытаюсь обновить свое состояние на основе ссылки. Это зависит от param.ID, который передается по маршруту.

Проблема в том, что я не уверен, как получить эту информацию для родительского компонента.

Государство имеет массив объектов. Нажатие на ссылку изменяет одно из свойств объекта. Но мне нужно знать, по какой ссылке щелкнули, чтобы узнать, как обновить состояние. В идеале я бы имел эту функцию в родительском компоненте:

updateState() { 
    this.setState({
        data: ????
})

Но я не уверен, что для установки данных, не зная заранее параметр. Если я передаю обработчик событий в функцию onClick в ссылке, я просто получаю HTML.

Я пытался изменить дочерний компонент на компонент класса и обновить состояние оттуда, но это не работает. Даже в componentDidMount. Я получаю огромную ошибку, говоря, что я обновляю состояние слишком много раз, и это приводит к бесконечному циклу .

1 Ответ

0 голосов
/ 26 мая 2019

Сравните предыдущие предыдущие реквизиты в компоненте, которые были обновлены до текущих реквизитов.

componentDidUpdate(prevProps) {
     if(prevProps.value !== this.props.value){
         this.setState({value: this.props.value)}
}

Не проверено ... но это суть.

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