Добрый день! Стаяла передо мной задача реализовать пагинацию, для этого было пройдены следующие шаги:
Первым шагом создал новою функцию в reducer:
case SET_CURRENT_PAGE: {
return {
...state,
currentPage: action.payload
}
}
Вторым шагом был создан сетевой запрос:
useEffect(() => {
axios.get(`/post/${props.numbersPage.currentPage}`)
.then(res => {
res.data.forEach(item => {
props.addPost(item.id);
});
}, [props.numbersPage.currentPage]);
Для того чтобы useEffect срабатывал после изменения текущей страницы, в зависимости указал currentPage.
Последним шагом добавил отрисовку страниц:
<div className="page">
{pages.map((page, index) => <span
onClick={() => dispatch(setCurrentPageAC(page))}
key={index}>{page}
</span>)}
</div>
Все отлично работает, если только не одно но, почему у меня при нажатие на span старое состояние redux store не перезаписывается новым, старые записи остаются, а в конец дописывается новый ответ от сервера. С данной проблемой не первый раз сталкиваюсь, могу предположить возможно неправильно совершаю копирование в reducer'e. Кто знает как решить эту проблему?