我已经阅读了关于setState的 ReactJS 文档。具体来说,这一行:
永远不要直接改变 this.state,因为之后调用 setState() 可能会替换你所做的改变。将 this.state 视为不可变的。
但在我的代码中,我做这样的事情:
var x = this.state.x;
x.y.z.push("foo"); // z is a list
this.setState({x:x});
此代码似乎可以正常工作并正确更新状态。但是根据文档,我违反了规则。这种方法有什么问题?是否存在性能问题?比赛条件?我会被 Facebook 开发团队骂吗?理想情况下,我想避免不变性助手和所有其他疯狂并保持简单。