Проблема заключается в том, что когда вы нажимаете Submit несколько раз для flower
, он переходит ко второй ветви условного оператора, который photos: [...this.state.photos, ...response.data.results]
, что приводит вас к неожиданному поведению
if (!isSameSearch) {
this.setState({
photos: [...response.data.results],
totalPhotos: parseInt(response.headers["x-total"]),
currentPage: page,
loadState: LOAD_STATE.SUCCESS,
prevSearch: search,
})
} else {
this.setState({
photos: [...this.state.photos, ...response.data.results],
totalPhotos: parseInt(response.headers["x-total"]),
currentPage: page,
loadState: LOAD_STATE.SUCCESS,
})
}
Решение может быть простым, в вашем logi c, каждый раз, когда вы нажимаете Submit
, вы запрашиваете с page
из 1, это главный ключ, а не предыдущий поиск, поэтому всякий раз, когда страница равна 1, просто получите результат с нуля
if (page === 1) {
this.setState({
photos: [...response.data.results],
totalPhotos: parseInt(response.headers["x-total"]),
currentPage: page,
loadState: LOAD_STATE.SUCCESS,
prevSearch: search,
})
} else {
this.setState({
photos: [...this.state.photos, ...response.data.results],
totalPhotos: parseInt(response.headers["x-total"]),
currentPage: page,
loadState: LOAD_STATE.SUCCESS,
})
}
Ниже находится окно с раздвоенными кодами
Редактировать crazy-germain-xk8ud