import React, { Component } from "react";
import "./scss/header.scss";
export default class header extends Component {
  state = {
    header: "",
  setStateAsync = (state) => {
    return new Promise((resolve, reject) => {
      this.setState(state, resolve);
    });
  changeHeader = async (e) => {
    await this.setStateAsync({ header: e.target.value });
    this.props.getHeaderMsg(this.state.header);
  render() {
    return (
        <input
          type="text"
          name="txt"
          className="header"
          value={this.state.header}
          onChange={this.changeHeader}
        ></input>
      </div>

这还有更多关于源码的实现请查阅手撕vue3源码觉得有用的小伙伴给个start吧

import React, { Component } from "react";import "./scss/header.scss";export default class header extends Component { state = { header: "", }; setStateAsync = (state) =&gt; { return new Promise((resolve, reject) =&gt; { this.setState(s
react中通过 state 以及 setState() 来控制组件的状态。 state statereact 中用来存储组件数据状态的,可以类比成 vue 中的 data。 1.state的作用 stateReact中组件的一个对象.React把用户界面当做是状态机,想象它有不同的状态然后渲染这些状态,可以轻松让用户界面与数据保持一致. React中,更新组件的state,会导致重新渲染用户界面(不要操作DOM).简单来说,就是用户界面会随着state变化而变化. 2.state工作原理 常用的通知React数据变化的方法是调用setState(data,callback).这个方
func2 = async () => { await this.func1() // 没有await的话,后面console.log(param)输出1 const { param } = this.state console.log(param) // 输出2
async/await 是个非常好用的处理的异步的es8新功能。 在react中使用也是特别方便的,如果你是通过create-react-app 创建的项目就不要担心浏览器的支持。直接使用即可。 直接上代码演示,我的axios是经过封装过后Promise。使用原生的也是一样效果,axios原生返回的也是Promise ,所以可以直接 通过let result = awiat Promise 中...
React经常会有需要通过异步请求返回的数据,然后再setStatestate中的操作。但是经常会因为异步的问题,导致数据显示有误,这里我通过async解决这个问题,下面是代码。async componentDidMount() { const data = await get(`url`) this.setState({ data: data https://zhuanlan.zhihu.com/p/113222681?utm_medium=social&utm_oi=1185581117233733632&utm_id=0 【vue3源码】响应式系统设计(effect嵌套问题)