React JS - 是否有this.setState(this.state)的简写?

时间:2015-08-01 09:16:57

标签: reactjs

React JS中是否有可以执行this.setState(this.state)的简写语法?在修改状态后调用forceUpdate()而不是this.setState(this.state)会有什么影响?

谢谢!

2 个答案:

答案 0 :(得分:0)

假设您有一个sideDrawer,您的状态为:

state = {
   showSideDrawer: false
};

当您点击切换图标时,底部功能将运行:

sideDrawerToggleHandler = () => {
   this.setState((prevState) => {
       return {showSideDrawer: !prevState.shorthand}
   });
}

这是一个例子,我希望这会有用

答案 1 :(得分:-1)

根据React documentation,国家不应该直接变异。

  

注意:   永远不要直接改变this.state,因为之后调用setState()可能会替换你所做的突变。把this.state看作是不可变的。   setState()不会立即改变this.state,但会创建挂起状态转换。调用此方法后访问this.state可能会返回现有值。   无法保证对setState的调用进行同步操作,并且可以对调用进行批处理以提高性能。   除非在shouldComponentUpdate()中实现条件呈现逻辑,否则setState()将始终触发重新呈现。如果正在使用可变对象且无法在shouldComponentUpdate()中实现逻辑,则仅当新状态与先前状态不同时调用setState()将避免不必要的重新渲染。