5 回答
TA贡献1816条经验 获得超4个赞
**
如果您使用react,那么您应该始终使用setState 来更改状态。
**
this.setState({ // calling setState for updating the state
result: this.state.result.map(item => {
let tmpItem = {...item};// storing all the value here in tmpItem
delete tmpItem.id; // deleting the key
return {...tmpItem}; // returning here
})
}, ()=> {
// for immediatly accessing the state you can use callback
});
TA贡献1842条经验 获得超12个赞
state在计算下一个状态时,您不应该依赖:s 值,因为它可能会由 React 在幕后异步更新。
另外,请尽量避免,delete因为它是性能杀手。
所以试试这个:
this.setState((state, props) => ({
result: state.result.map(({id, ...propsToKeep}) => propsToKeep)
}));
或者如果你必须使用delete:
this.setState((state, props) => ({
result: state.result.map(res => {
delete res.id;
return res;
});
}));
TA贡献1817条经验 获得超6个赞
在 React 中,您无法直接更新state. 你总是必须使用setState方法来做到这一点。
所以试试这个。
this.setState({
result: this.state.result.map(item => {
let tmpItem = {...item};
delete tmpItem.id;
return {...tmpItem};
})
});
谢谢!
TA贡献1946条经验 获得超3个赞
在 React.js 中,你永远不应该尝试直接改变状态。您必须使用 setState() 才能获得结果。id 没有被删除,因为没有发生重新渲染。
从文档中,
不要直接修改状态
// Wrong this.state.comment = 'Hello';
相反,使用 setState():
// Correct this.setState({comment: 'Hello'});
添加回答
举报