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>
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(s
在react中通过 state 以及 setState() 来控制组件的状态。
state
state 是 react 中用来存储组件数据状态的,可以类比成 vue 中的 data。
1.state的作用
state是React中组件的一个对象.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 中...