Stay before every beautiful thoughts.

Just be nice, always think twice!

React setState 数组、对象多种方式

江矿先森. React

修改object中某项

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);
江矿先森.
前(台)端(菜), 喜欢瞎折腾新技术. 乜野都识少少, 先可以扮代表:p