一 概述
- setState()是异步更新数据的
- setState推荐语法
- setState()第二个参数
二 setState()是异步更新数据的
2.1 使用说明
- setState() 是异步更新数据的
- 注意:使用该语法时,后面的 setState() 不要依赖于前面的 setState()
- 可以多次调用 setState() ,只会触发一次重新渲染
2.2 示例
setState代码
1 2 3 4 5 6 7 8 9 10
| handleClick = () => { this.setState({ count: this.state.count + 1 }) console.log('count:', this.state.count) // 1 this.setState({ count: this.state.count + 1 // 1 + 1 }) console.log('count:', this.state.count) // 1 }
|
打印结果
三 setState推荐语法
3.1 使用说明
- 推荐:使用 setState((state, props) => {}) 语法
- 参数state:表示最新的state
- 参数props:表示最新的props
3.2 示例代码
setState((state,props)=>{})代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| handleClick = () => { this.setState((state, props) => { return { count: state.count + 1 // 1 + 1 } }) this.setState((state, props) => { console.log('第二次调用:', state) return { count: state.count + 1 } }) console.log('count:', this.state.count) // 1 }
|
显示结果
四 setState()第二个参数
4.1 使用说明
- 场景:在状态更新(页面完成重新渲染)后立即执行某个操作
- 语法: setState(updater[, callback])
4.2 示例代码
第二个参数代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| handleClick = () => { this.setState( (state, props) => { return { count: state.count + 1 } }, () => { console.log('状态更新完成:', this.state.count) // 2 console.log(document.getElementById('title').innerText) document.title = '更新后的count为:' + this.state.count } ) console.log(this.state.count) // 1 }
|
打印结果