DidComponentUpdate Родной бесконечный цикл React Native - PullRequest
0 голосов
/ 24 апреля 2019

Почему DidComponentUpdate находится в бесконечном цикле?

Я пытаюсь получить некоторые данные из API, когда пользователь меняет текст на вводе

componentDidUpdate(prevState){
    if (prevState.userinput !== this.state.userinput){

fetch('https://'+this.region+'.api.riotgames.com/lol/summoner/v4/summoners/by-name/'+this.state.userinput+'?api_key='+this.apikey+'RGAPI-484c0156-6203-4611-b281-c3933b6ac175')
.then(respostauser => respostauser.json())
.then(json => this.setState({user : json}));
fetch('https://'+this.region+'.api.riotgames.com/lol/champion-mastery/v4/champion-masteries/by-summoner/'+this.state.user.accountId+'?api_key='+this.api_key)
.then(respostamastery => respostamastery.json())
.then(json => this.setState({usermastery : json}));
this.x ++;}

}

1 Ответ

0 голосов
/ 24 апреля 2019

Как указано в документации по реакции здесь , установка состояния в методе жизненного цикла componentDidUpdate должна выполняться с использованием некоторых условных проверок, иначе вы столкнетесь с бесконечнымпетля.

Это связано с тем, что по умолчанию при обновлении состояния вызывается метод componentDidUpdate.В приведенном выше фрагменте этот метод жизненного цикла содержит логику, которая безоговорочно обновляет состояние (this.setState), следовательно, бесконечный цикл.

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