Ich verwende das react-addons-update
npm-Paket mit meiner React-Anwendung und möchte speziell die Methode update()
verwenden, um ein neues Objekt tief in ein Array von Objekten einzufügen. Ich habe diese Struktur als Teil meiner Komponente Zustand:react-addons-update - Wie fügt man ein Objekt tief in ein Array von Objekten ein?
...
constructor(props) {
super(props);
this.state = {
blocks: [
{
block_title: "some title",
items: [
{
item_title: "foo"
},
{
item_title: "bar"
}
]
},
{
...
}
]
};
}
...
und ich möchte ein neues Element in die items
Array einfügen, zwischen dem ersten und dem zweiten Element.
Ich habe dies versucht:
...
insertItem(){
let obj = {
item_title: "in between foo and bar"
};
this.setState({
blocks: update(this.state.blocks, {
[0]: {
items: {$splice: [[1, 0, obj]]}
}
})
});
}
...
aber dies scheint nicht zu funktionieren (keine Fehler entweder geworfen werden). Irgendwelche Ideen?
p.s. Ich benutze React innerhalb einer Meteor-Anwendung - nur für den Fall, dass es eine Eigenart gibt, die verhindert, dass diese Hilfsfunktion funktioniert.
Was ist die Update-Methode? Blockiert eine 'Immutable.List'? Wenn ja, denke ich, dass Sie 'updateIn' verwenden müssen, und Sie müssten das Array separat rekonstruieren, bevor Sie es in die 'updateIn'-Methode übergeben. – RocketGuy3
Die update() -Methode ist eine Hilfsfunktion aus dem Paket react-addons-update npm. – JoeTidee
sieht aus wie Ihr Code funktionieren sollte. Könnte es etwas anderes sein als update? Wenn Sie Ihre Update-Funktion protokollieren würden, was ist das Ergebnis? –