Получение Redux Reducer для объединения массивов - PullRequest
0 голосов
/ 26 июня 2019

Итак, что здесь происходит, я пытаюсь настроить автоматическую нумерацию страниц.Я установил цикл 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)
  }
}

Создает несколько массивов в консоли:

enter image description here

1 Ответ

1 голос
/ 26 июня 2019

Согласно скриншоту у вас есть один массив со всеми элементами. Это просто инструмент chrome dev, визуально разделяющий массив для удобства отладки.

Чтобы обеспечить наличие только одного массива, вы можете его преобразовать в строку и затем вывести на консоль:

console.log(JSON.stringify(totalUserHistory))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...