reactjs - uppdatera inbäddat tillståndsobjekt med array inuti
Jag har problem med att uppdatera mitt state-objekt som har en array av objekt inuti. Det finns några saker som jag har försökt men ingen av dem fungerade. Här är ett exempel på mitt state-objekt. Med exemplet nedan vill jag uppdatera värdena för test och test2 beroende på vad användaren skriver i inmatningsfältet. Kan någon guida mig i rätt riktning. Tack!
this.state = {
someProperty: {
someOtherProperty: [
object in array: {
test: true,
test2: false
},
object in array: {
test: true
test2: false
}
..
]
...
}
...
}
Mitt försök att uppdatera värdet i objektet är som följer:
this.setState(prevState => ({
...prevState,
someProperty: {
...prevState.someProperty,
someOtherProperty: [
...prevState.someProperty.someOtherProperty,
test: false
]
}
}))
Svar #1
Du kan skapa en array latestSomeOtherProperty, uppdatera det önskade indexet och sedan;
const latestSomeOtherProperty = someOtherProperty.map(prop=>{...prop, test: false}); // it updates all but you can put condition here
this.setState(prevState => ({
...prevState,
someProperty: {
...prevState.someProperty,
someOtherProperty: [
...latestSomeOtherProperty
]
}
}))
