setState
setState 更新状态的两种写法
对象式的 setState
setState(stateChange, [callback])
- stateChange为状态改变对象
- 该对象可以体现出状态的更改
- callback 是可选的回调函数,它在状态更新完毕,界面更新也更新后(render 调用后)才被调用
函数式的 setState
setState(updater, [callback])
- updater 为返回 stateChange 对象的函数
- 可以接收到 state 和 props
- callback 是可选的回调函数,它在状态更新完毕,界面更新也更新后(render 调用后)才被调用
示例
export default class App extends Component {
state = {
value: 0
}
// 加1
add = () => {
const { value } = this.state;
this.setState({ value: value + 1 }, () => {
console.log(this.state.value, 'callback')
})
console.log(this.state.value)
}
// 减1
reduce = () => {
this.setState((state, props) => {
return {
value: state.value - 1
}
}, () => {
console.log(this.state.value, 'callback')
})
console.log(this.state.value)
}
render () {
return (
<div>
<div>当前值为 {this.state.value}</div>
<button onClick={c => this.add(c)}>+1</button>
<button onClick={c => this.reduce(c)}>-1</button>
</div >
)
}
}
总结
- 对象式的 setState 函数式的 setState 的简写方式(语法糖)
- 使用原则
- 如果新状态不依赖原状态使用对象方式
- 如果新状态依赖于原状态使用函数方式
- 如果需要在 setState() 执行后获取最新的状态数据,要在第二个 callback 函数中获取
本文来自博客园,作者:懒惰ing,转载请注明原文链接:https://www.cnblogs.com/landuo629/p/15152049.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-08-17 微信小程序录音与播放