我想在對象數組上使用this.setState,但是,我的代碼只能設置1對象的狀態。我認爲它是在自己寫作。this.setState與映射寫入本身
路徑:MongoDB
"careerHistoryPositions": [
{
"company": "Company A",
"title": "Title A",
"uniqueId": "1497575516964"
},
{
"company": "Company B",
"title": "Title B",
"uniqueId": "1497575525034"
}
]
路徑:Reactpage
constructor(props) {
super(props);
this.state = {
data: [],
};
}
componentWillReceiveProps(nextProps) {
const profileCandidateCollection = nextProps.profileCandidate;
const profileCandidateCollectionId = profileCandidateCollection._id;
const careerHistoryPositions = profileCandidateCollection && profileCandidateCollection.careerHistoryPositions;
if(careerHistoryPositions) {
careerHistoryPositions.map((position) =>
this.setState({
data: [{
'position.uniqueId': position.uniqueId || '',
'position.company': position.company || '',
'position.title': position.title || ''
}]
})
);
}
}
您* *從數組對象改變data'的'值。這就是你告訴JavaScript要做的事情。你想要發生什麼?也許你的意思是做'this.setState({data:careerHistoryPositions.map(...)})''而不是? –
現在,您正在告訴JavaScript將'data'設置爲一個對象的數組。這裏沒有魔術發生。 '數據'就是你正在設置的。 –
有一個未知數量的'careerHistoryPositions'需要被映射。它可能是1或它可能是20.我需要設置數據的狀態,以便我可以使用表單。 – bp123