Постоянно пытаться «получить» API.если это не удается из-за ошибки сети - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь Axios в реакции, все работает нормально, за исключением того, что я пытаюсь добавить одну функцию.Обычно, если моя страница загружается, она показывает загрузчик и загружается, если из-за медленной сети загрузчик отображается в течение более длительного периода времени.

Теперь, если я отключаю интернет, загрузчик отображается бесконечно, он больше не звонит, пока страница не обновится с помощью сети.

Что я хочу: - В любой момент времени (если он не слишком длинный), когда отображается загрузчик, он должен попытаться «ПОЛУЧИТЬ» URL API.

Вот код

componentDidMount(){
    axios.get('https://jsonplaceholder.typicode.com/posts').then(response =>{
        const posts  = response.data.slice(0,4);
        const updatedPost = posts.map((post)=>{
            return{
                ...post,
                author:'Max'
            }
        })
        this.setState({posts: updatedPost})
        console.log(response);
    }).catch((error)=>{
        if(error.message === "Network Error"){

           //What should be written here..!!! 

        }
    })
}

1 Ответ

0 голосов
/ 17 февраля 2019

Вы можете попробовать использовать while петлю

//First set state

state = {
  isResponse: false
}

function get() {
    axios.get('url')
      .then(response => this.setState({isResponse: true}))
      .catch(err => console.log(err))
}

componentDidMount(){
  //Set the number of trials
  var numberOfTrials = 10
  //Set the initial value
  var n = 0 

  while(this.state.isResponse === false && n < numberOfTrials) {
    get();
    //Append everytime until reaches the numberOfTrials and stop
    n += 1 
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...