我在使用我的React應用程序中的react-addons-update
npm軟件包,並且特別想使用update()
方法在對象數組內插入新對象。 我有這樣的結構作爲我的組件的狀態的一部分:react-addons-update - 如何在對象數組中深入插入對象?
...
constructor(props) {
super(props);
this.state = {
blocks: [
{
block_title: "some title",
items: [
{
item_title: "foo"
},
{
item_title: "bar"
}
]
},
{
...
}
]
};
}
...
,我想插入一個新項目插入到items
陣列,所述第一和第二項之間。
我已經試過這樣:
...
insertItem(){
let obj = {
item_title: "in between foo and bar"
};
this.setState({
blocks: update(this.state.blocks, {
[0]: {
items: {$splice: [[1, 0, obj]]}
}
})
});
}
...
但這似乎並沒有工作(沒有錯誤被拋出其一)。有任何想法嗎?
p.s.我在Meteor應用程序中使用React - 以防萬一有一些怪癖阻止這個幫助函數的工作。
什麼是更新方法也被提到?塊是不可變的列表嗎?如果是這樣,我認爲你需要使用'updateIn',你需要在將數組傳遞給'updateIn'方法之前分別重建數組。 – RocketGuy3
update()方法是react-addons-update npm包中的一個輔助函數。 – JoeTidee
看起來像你的代碼應該工作。它可能與更新不同有關嗎?如果你要記錄你的更新函數,結果如何? –