javascript - React 中的这个 handleClick 函数如何检索先前的状态值?
问题描述
此codepen将按钮值从 切换true
到false
。
除了这个handleClick
功能是如何工作的,我理解这一点:
handleClick() {
this.setState(prevState => ({
isToggleOn: !prevState.isToggleOn
}));
}
有人可以将其分解并简单地解释该函数如何检索isToggleOn
布尔值吗?
我知道我们不能直接使用!this.state.isToggleOn
insetState
但是有人可以简单地解释一下为什么这个handleClick
函数在这种情况下对于 React 新手来说更可靠吗?
这是handleClick
调用函数的地方:
render() {
return (
<button onClick={this.handleClick}>
{this.state.isToggleOn ? 'ON' : 'OFF'}
</button>
);
解决方案
从setState
文档:
第一个参数是一个带有签名的更新函数:
(state, props) => stateChange
state
是对应用更改时的组件状态的引用。
在您的示例prevState
中已state
重命名,它包含状态中的所有分配,包括isToggleOn
.
您也可以只读取函数this.state
。setState
该prevState
模式用于传达这是旧/当前状态,即正在更改的状态。
推荐阅读
- javascript - Javascript splice function not working correctly
- java - Maven 中注释处理的正确生命周期顺序
- c# - Show or Hide other fields on the event of ComboBox SelectedIndexChanged
- python - Need help making a drawing using recursion
- amazon-web-services - get data of how results have been found in Amazon Cloudsearch
- javascript - How do I sort by alphabetical order this array of objects
- google-cloud-platform - what kind of bigtable replication do my datastore entities use?
- amazon-web-services - How to setup automated deployment from CodeCommit to a Lambda Function?
- c++ - C++ program to find prime numbers in a fibonacci series
- flutter - How to get publicKey in RSA_encrypt key-pair generation algorithm in STRING format in flutter