REACT,帮助我理解prevState



像这样定义这个counterHandler有什么区别

counterHandler = () => {
this.setState(() => {
return { times: this.state.times + 1 }
});
}

这吗?

counterHandler = () => {
this.setState((prevState) => {
return { times: prevState.times + 1 }
});
}

组件的状态是否总是自动传递给setState ?

如果你只使用一个数据在状态,你不需要做回调的prevState,但是如果你的状态不止一个,你需要回调prevstate,因为这将使你的其他和以前的数据不会丢失。

例如

const [state, setState] = useState({
loading: false,
data: []
})
const handleLoading = () => {
setState({
loading: true
})
}
const handleData = () => {
setState({
data: [a,b,c] // you will lost your loading = true
})}
const handleData = () => {
setState((prevState) => {
...prevState,
data: [a,b,c] // you still have loading = true
})
}

最新更新