const reducer = (state, action) => {
switch (action.type) {
case 'success':
return {
isFetching: false,
error: '',
products: action.payload,
count: 8,
}
case 'paginate':
API.popularProduct(state.count + 8).then((res) => {
return {
isFetching: false,
error: '',
products: res.data.data,
count: state.count + 8,
}
})
default:
throw new Error()
}
}
Я использую useReducer для загрузки данных, а затем загружаю еще несколько при нажатии кнопки просмотра дополнительных данных, проблема заключается в том, что при вызове «разбиения на страницы» код не ждет завершения вызова api и ничего не возвращает.
Это ожидаемое поведение, поскольку редуктор является синхронным, а PopularProduct - это только обещание, ожидающее выполнения. Итак, вам нужен способ сделать это где-нибудь еще и вызвать редуктор с результатом после его завершения.