我在状态为关联数组的内部有一个数组。我想在事件发生时将值插入此数组。
我使用的状态声明。
state = {
array: [{
aaa: '',
bbb: ''
}]
};
应该在状态内部的数组中插入值的函数。
reader.onload = (e) => {
var newArray = {
aaa: new_aaa,
bbb: new_bbb
}
this.setState({
array: this.state.array.concat(newArray)
});
}
以某种方式,它不起作用^ _ ^
答案 0 :(得分:1)
尝试以下代码。在React中将值或对象推入数组的最佳方法是使用如下所示的先前状态
reader.onload = (e) => {
const obj = {
aaa: new_aaa,
bbb: new_bbb
}
this.setState( prevState => ({
array: [...prevState.array, obj]
}));
}
或
reader.onload = (e) => {
const obj = {
aaa: new_aaa,
bbb: new_bbb
}
const array = [...this.state.array];
array.push(obj);
this.setState({
array
});
}
答案 1 :(得分:1)
设置状态时可以使用Destructuring_assignment
。
state = {
array: [{
aaa: '',
bbb: ''
}]
};
reader.onload = (e) => {
var newArray = {
aaa: new_aaa,
bbb: new_bbb
}
this.setState({
array: [...this.state.array,newArray]
});
}