Добрый день,
Я пытаюсь получить новые данные, как только новые реквизиты меняются на моем маршруте.
Вот мой пример маршрутизации:
<Route path={'/students/:selectedPage'} exact component={Students} />
По сути, у меня есть метод, который выбирает мои данные. Поэтому я вызываю его в моем componentDidMount()
Вот мои примеры кодов:
componentDidMount(): void {
this.getData()
}
getData(selectedPage){
axios.get(`http://localhost:1343/students/${selectedPage}`).then(response=>{
this.setState({
students: response.data
})
}).catch(error=>console.log(error)
}
Для моего componentDidUpdate
метода, который запускает, если есть новые изменения в param
моего URL.
componentDidUpdate(): void {
if (this.props.match.params.selectedPage !== prevProps.selectedPage){
this.getData(this.props.match.params.selectedPage)
}
}
К сожалению, это вызывает бесконечный запрос от веб-API. Что делает стол медленным. Я пытался создать состояние с именем hasLoaded
, но выдает сообщение об ошибке, в котором говорится, что обнаружен бесконечный l oop.
Любой совет?