How to realize setState synchronization and asynchronism in React
This article mainly introduces "how to achieve setState synchronization and asynchrony in React". In daily operation, I believe many people have doubts about how to realize setState synchronization and async in React. The editor consulted all kinds of materials and sorted out simple and easy-to-use operation methods. I hope it will be helpful to answer the doubts of "how to achieve setState synchronization and asynchrony in React". Next, please follow the editor to study!
1. In React, event handlers controlled by React, such as onClick, onChange, etc., setState is asynchronous
Import React, {Component} from 'react';export default class Input extends Component {constructor (props) {super (props); this.state= {name:' hello'}} _ onChange (e) {this.setState ({name:' world'}) console.log (this.state.name) / / hello} render () {return ();}}
two。 In events that native JS listens to, such as addEventListener, setState is synchronized
Import React, {Component} from 'react';export default class Input extends Component {constructor (props) {super (props); this.state= {name:' hello'}} _ onChange (e) {/ / do something} componentDidMount () {let input = document.querySelector ('.cp-input') Input.addEventListener ('click', () = > {this.setState ({name:' world'}) console.log (this.state.name); / / world})} render () {return ();}}
3. In setTimeout, setStatet is synchronized
Import React, {Component} from 'react';export default class Input extends Component {constructor (props) {super (props) This.state= {name:' hello'}} _ onChange (e) {/ / do something} componentDidMount () {setTimeout () = > {this.setState ({name:' world'}) console.log (this.state.name) / / world}, 1000)} render () {return ();}} at this point, the study on "how to implement setState synchronization and asynchrony in React" is over. I hope I can solve your doubts. The collocation of theory and practice can better help you learn, go and try it! If you want to continue to learn more related knowledge, please continue to follow the website, the editor will continue to work hard to bring you more practical articles!