运用在React 中 setState
的对象、数组的操作时是不能用类似array.push()
等方法,因为push没有返回值,setState后会出现state变成Number,为了方便他人和自己查看,因此写个数组和对象的操作方法小笔记。
this.setState({
object: {...object, key: value}
});
array.splice(0, 1);
this.setState({
array
});
array.splice(array.length - 1);
this.setState({
array
});
array.splice(index, 1);
this.setState({
array
});
this.setState({
array: [...array, item]
});
this.setState({
array: [item, ...array]
});
array.splice(index, 0, item);
this.setState({
array
});
function updateArrayItem(index, key, value) {
this.setState({
array: array.map((item, _index) => _index == index ? {...item, [key]: value} : item)
});
}
this.setState(prevState => return newState);
返回一个新的state对象,可以修改最复杂的state,一般不建议使用