this.setState(fn) 如何理解???

#1
handleClick() {
    this.setState(prevState => ({
      isToggleOn: !prevState.isToggleOn
    }));
  }

如何理解?

#2

this.setState() 接收一个对象,{ key:value } ,所以针对上面问题中的setState也可以这样书写:

handleClick() {
      let  _isToggleOn = this.state.isToggleOn;
      this.setState({
            isToggleOn: !_isToggleOn
      });
}

但是这样书写比较麻烦,所以React提供了在setState() 中传递一个回调函数的方法,并且提供了两个参数 prevState和props ,就是当前状态的state和props。 所以上面的代码就可以这样书写:

this.setState((prevState, props) => ({ 
     isToggleOn: !prevState.isToggleOn
}))

括号里面的箭头函数的返回值其实还是一个{ key: value }
(个人理解如有错误请批评指正)

#3

谢谢你的解答!!!