时间:2021-05-18
react 是单向数据流,若想要改变已有组件的外观,我们只能通过更改组件的 props 或者更新组件的 state。在 react 项目的代码中我们操作最多的就是 this.setState 方法。下面对 setState 方法进行详细的说明。
<!--more -->
setState要点:react 框架为了提高性能,会对 state 的更新进行收集、合并、再进行一次批量的状态更新。这种机制常常导致一些意想不到的情况。
setState 有两种调用形式:
向 setState 传递对象
setState()并不会立即触发 state 的更新。
1、🔔注意:在 addEventListener、setTimeout、ajax 回调中 this.setState 是立即触发的。
2、setState 会合并更新,可能会造成状态更新的丢失
综上:在同一代码块中不要多次调用 this.setState 方法
react 的 setState 还提供了另一种调用形式:this.setState(callbackFunc)
该语法和直接为 setState 传递对象不同,不会合并更新。
// demo + 1handleSyncStateChange = () => { this.setState({ demo: this.state.demo + 1 }); this.setState({ demo: this.state.demo + 1 });}// demo + 2handleAsyncStateChange = () => { this.setState((preState, preProps) => { return { demo: preState.demo + 1 } }); this.setState((preState, preProps) => { return { demo: preState.demo + 1 } });}refs
Async Nature Of setState
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
setState是同步还是异步自定义合成事件和react钩子函数中异步更新state以在自定义click事件中的setState为例importReact,{C
本文实例为大家分享了React实现全选功能的具体代码,供大家参考,具体内容如下{item.checked=true;})}else{this.setState(
在react中,修改状态如果直接使用this.state,不会引起组件的重新渲染,需要通过this.setState来对组件的属性进行修改。1、this.set
在开发React组件的过程中,我们经常会遇到这个问题:什么情况下组件会重新渲染?当内部data发生改变,state发生改变(通过调用this.setState(
在使用React过程中,中可以使用this.state来访问需要的某些状态,但是需要更新或者修改state时,一般而言,我们都会使用setState()函数,从