さて、これが私が入っているピクルスです、私の行動の1つactions/index.js
は次のとおりです:
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)
クロームコンソールの上から、私は私の取得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'
さて、ここで私は立ち往生しています。
私が使用しているテーブルは、配列のみを受け入れるAllen Fangのreact-bootstrap-tableであり、次のように呼び出される<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} />
を状態、変数、ディスパッチされたアクション、まだ聞いたことのないものを使用するように渡すための最良の方法は何ですか?
どんな助けでも大歓迎です!! 参考までに、これはStack Overflowでの私の最初の質問であり、懐かしい感じがします。私は常勤の警察官であり、側でコーディングを学ぼうとしています。再度、感謝します!
更新:
Piotr 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]を取得します
このような:
StackOverflowへようこそ:)
ネストされたpersistedState.people
オブジェクトを配列に変換するには、最初にキーを使用Object.keys(persistedState.people)
してキーの中間配列を確立し、次にキーを使用しmap()
て、各キーを元のネストされたオブジェクトにあるオブジェクトに置き換えます---persistedState.people
そのキーで。結果の配列を変数に割り当てて、それをに渡すことができますBootstrapTable
。以下のコードとここのデモを確認してください:http://codepen.io/PiotrBerebecki/pen/yaXrVJ
const persistedState = {
people: {
'abc123' : {
id:'abc123',firstName: 'Gus', lastName: 'McCrae'
},
'abc124' : {
id:'abc124',firstName: 'Woodrow', lastName: 'Call'
},
'abc125' : {
id:'abc125',firstName: 'Jake', lastName: 'Spoon'
}
}
}
const peopleArr = Object.keys(persistedState.people).map(function(key) {
return persistedState.people[key];
});
console.log(JSON.stringify(peopleArr));
/*
Logs the following array:
[
{"id":"abc123","firstName":"Gus","lastName":"McCrae"},
{"id":"abc124","firstName":"Woodrow","lastName":"Call"},
{"id":"abc125","firstName":"Jake","lastName":"Spoon"}
]
*/
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加