Хорошо, вот рассол, что я нахожусь, один из моих действий в actions/index.js
является:Как я перехожу часть Redux магазина в массив
export function requestPeople() {
return (dispatch, getState) => {
dispatch({
type: REQUEST_PEOPLE,
})
const persistedState = loadState() // just loading from localStorage for now
console.log(persistedState)
//Object.keys(persistedState).forEach(function(i) {
//var attribute = i.getAttribute('id')
//console.log('test', i,': ', persistedState[i])
//myArr.push(persistedState[i])
//})
//console.log(myArr)
//dispatch(receivePeople(persistedState)) // I'm stuck here
}
}
и когда я console.log(persistedState)
сверху в консоли Chrome Я получаю состояние people
именно так.
Object {people: Object}
Затем, когда я углубиться в people: Object
выше, я их так:
abc123: Object
abc124: Object
abc125: Object
и когда я углубиться в каждую из этих щенков (нажав на маленький треугольник в консоли Chrome) Я получаю каждый так:
abc123: Object
firstName: 'Gus'
id: 'abc123'
lastName: 'McCrae'
// when I drill down into the second one I get
abc124: Object
firstName: 'Woodrow'
id: 'abc124'
lastName: 'Call'
Теперь, вот где я застрял.
В таблице я использую Аллен Клык реагировать-самозагрузку-таблицу, которая принимает только массив, и это получить называеться как это <BootstrapTable data={people} />
так нужно мой выше данные должны быть преобразовано в массив как это:
const people = [{
id: abc123,
firstName: 'Gus',
lastName: 'McCrae'
}, {
id: abc124,
firstName: 'Woodrow',
lastName: 'Call'
}, {
...
}]
// and eventually I'll call <BootstrapTable data={people} />
Мой вопрос конкретно в том, как мне преобразовать состояние people
, указанное выше, в этот необходимый массив? В моем action/index.js
файле я пробовал: Object.keys(everything!!!)
И, наконец, когда у меня есть массив, что это лучший способ передать этот массив в <BootstrapTable data={here} />
используя состояние, переменным, переданное действие, что-то я никогда не слышал все же?
Любая помощь будет очень признательна! FYI, это мой первый вопрос в Stack Overflow, чувствующий ностальгию. Я полицейский, работающий полный рабочий день, и пытаюсь научиться кодировать на стороне. Еще раз спасибо!
UPDATE:
Благодаря предложению Петра Berebecki, я связывая это так:
export function requestPeople() {
return (dispatch, getState) => {
dispatch({
type: REQUEST_PEOPLE,
})
const persistedState = loadState()
console.log('persistedState:', persistedState)
const peopleArr = Object.keys(persistedState.people).map(function(key) {
return persistedState[key]
})
console.log(JSON.stringify(peopleArr))
//dispatch(receivePeople(persistedState))
}
}
и получение [NULL, NULL, NULL]
так:
Спасибо за помощь! Тем не менее, я просто попробовал ваши предложения.Но я думаю, что мой peopleObj настроен немного иначе, я получаю '[{" abc123 ": {" id ":" abc123 "," firstName ":" Gus "," lastName ":" McCrae "}, abc124 ": {" ID ":" abc124" , "Имя": "Вудро", "LastName": "Call"}, "abc125": { "ID": "abc125", "Имя": "Джейк", «lastName»: «Spoon»}}] ' –
Вот код моего редуктора, который использовался для создания моего peopleObj:' const initialValues = { человек: { 'abc123': {id: 'abc123', firstName: 'Gus ', lastName:' McCrae '}, ' abc124 ': {id:' abc124 ', firstName:' Woodrow ', lastName:' Call '}, ' abc125 ': {id:' abc125 ', firstName:' Jake ', lastName:' Spoon '}, }, addedPerson: false, } ' –
Я только что обновил свой код и код. Посмотрите, если он решает ваш вопрос. –