React JS中是否有可以执行this.setState(this.state)
的简写语法?在修改状态后调用forceUpdate()
而不是this.setState(this.state)
会有什么影响?
谢谢!
答案 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()将避免不必要的重新渲染。