Итак, что здесь происходит, я пытаюсь настроить автоматическую нумерацию страниц.Я установил цикл while, который отправляет запросы на получение, в то время как количество элементов массива в возвращаемых данных больше 0. Каждый цикл он отправляет данные моему редуктору AppendUserHistoryReducer, как показано в коде ниже.
Я бы хотел, чтобы редуктор добавлял каждый цикл данных, которые он получает, в один массив.В настоящее время я только выяснил, как хранить каждый цикл данных в отдельном массиве в состоянии (показано на рисунке консоли).Я мог бы отобразить данные и объединить их все вместе после факта, но мне просто интересно, есть ли лучший способ сделать это, поэтому писать этот дополнительный код не нужно.Имеется в виду, можно ли это сделать в редукторе?
Просто чтобы прояснить, моя цель состоит в том, чтобы состояние totalUserHistory было [0 - 729], а не разбито на разные массивы, просто изменив код в редукторе..
Код, к которому я обращаюсь за помощью:
export const AppendUserHistoryReducer = (userData=[], action) => {
if (action.type === 'APPEND_USER_DATA') {
return [...userData.concat(action.payload)]
}
return userData;
}
Код цикла, просто для контекста:
// auto pagination
while (this.props.userHistory.length > 0) {
let { userHistory } = this.props
let lastPage = userHistory[userHistory.length-1].data.name
const response = await axios.get (`https://oauth.reddit.com/user/${userIdentityObject.data.name}/saved/.json?limit=100&after=${lastPage}`, {
headers: { 'Authorization': `bearer ${token}` }
})
console.log('a loop');
this.props.storeUserHistory(response.data.data.children)
this.props.appendUserHistory(response.data.data.children)
}
}
Создает несколько массивов в консоли: