跳到主要内容

React 如何更新组件状态?

参考答案:

在 React 中,组件的状态(state)是私有的,并且完全由组件自己来控制。你可以通过调用组件的 setState 方法来更新组件的状态。setState 方法会触发组件的重新渲染。

下面是一个简单的例子,演示了如何在 React 组件中更新状态:

import React, { Component } from 'react';

class MyComponent extends Component {
  constructor(props) {
    super(props);
    this.state = {
      count: 0,
    };
  }

  render() {
    return (
      <div>
        <p>You clicked {this.state.count} times</p>
        <button onClick={() => this.handleClick()}>
          Click me
        </button>
      </div>
    );
  }

  handleClick() {
    this.setState({ count: this.state.count + 1 });
  }
}

export default MyComponent;

在这个例子中,MyComponent 组件有一个状态 count,初始值为 0。当按钮被点击时,handleClick 方法会被调用,该方法通过调用 this.setState 来更新 count 的值。每次 setState 被调用,React 都会重新渲染该组件,因此 count 的值会在界面上实时更新。

注意,setState 是异步的。这意味着你不能依赖 this.state 的值来立即更新。如果你需要基于前一个状态来更新状态,你可以将 setState 的第二个参数作为一个函数来使用,如下所示:

this.setState(prevState => ({
  count: prevState.count + 1,
}));

这样,你可以确保基于前一个状态来更新状态,而不是基于可能已经过时的 this.state 的值。