Reactjs 这里的currentState是什么意思
这里只有一个状态,IsOne,但是当我设置一个状态时,我看到了currentState,这意味着什么?在上面的示例中,currentState是您以前使用过的状态,当您有多个项目(如多个用户列表)时,您希望比较,并希望将其中一些项目与true false进行比较,然后您可以使用,但对于切换状态,您只需使用以下代码即可:Reactjs 这里的currentState是什么意思,reactjs,react-native,Reactjs,React Native,这里只有一个状态,IsOne,但是当我设置一个状态时,我看到了currentState,这意味着什么?在上面的示例中,currentState是您以前使用过的状态,当您有多个项目(如多个用户列表)时,您希望比较,并希望将其中一些项目与true false进行比较,然后您可以使用,但对于切换状态,您只需使用以下代码即可: this.state = { isOpen: false }; onClickHandler() { this.setState(currentState =
this.state = { isOpen: false };
onClickHandler() {
this.setState(currentState => ({
isOpen: !currentState.isOpen
}));
}
要使用当前状态计算新状态,您可以执行以下操作:
this.state = { isOpen: false };
onClickHandler() {
this.setState({
isOpen: !this.state.isOpen
});
}
但是,这是一种不良做法,如以下所述:
状态更新可能是异步的。React可批处理多个setState()
调用单个更新以提高性能。因为这是道具和
此.state可能会异步更新,您不应依赖其
用于计算下一个状态的值
因此,当我们需要从当前状态计算下一个状态时,setState
以setState(myCurrentState=>{…})的形式提供对当前状态的访问代码>。您甚至可以访问props
作为第二个参数,如setState((myCurrentState,myProps)=>{…})代码>
因此,在您的情况下,currentState
只是指在即将发生的状态更新之前给定时刻的组件状态
这意味着什么
如果你去那里的文档,你会发现有两种方法可以更新状态
通过使用对象方式
通过传递函数李>
1.
这样,您只需要传递要更新的状态对象的属性。比如:
this.state = { isOpen: false };
onClickHandler() {
this.setState(currentState => ({
isOpen: !this.state.isOpen
}));
}
2.
在本例中,您将其命名为currentState
,它指的是尚未更新的前一个状态
this.setState({isOpen: !this.state.isOpen});
this.setState(currentState=>({//currentState在这里是什么意思以前存储的状态如果我不使用currentState怎么办…?您可能不需要它。setState({isOpen:!currentState.isOpen})
如果没有currentState,它也能工作。这不是问题的答案。这就是我在评论中写这篇文章的原因。亲爱的,currentState的意思是什么?包括这个答案希望你能理解
this.setState(currentState => ({ // <---currentState is named as prevState in docs
isOpen: !currentState.isOpen
}));