📜  如何在 ReactJS 中更新组件的状态?

📅  最后修改于: 2022-05-13 01:56:52.927000             🧑  作者: Mango

如何在 ReactJS 中更新组件的状态?

State 是 React 组件的一个实例,可以定义为一组可观察属性的对象,这些属性控制组件的行为。换句话说,组件的状态是一个对象,它包含一些可能在组件的生命周期内发生变化的信息。组件的状态可以在生命周期内更新。

通常,React 中有两种类型的组件。基于类的组件和功能组件。在这两种类型的组件中,我们更新组件状态的方法是不同的。我们将一一学习。

创建反应应用程序:

第 1 步:使用以下命令创建一个 React 应用程序:

npx create-react-app name_of_the_app

第 2 步:创建反应应用程序后,使用以下命令根据您的应用程序名称移动到目录:

cd name_of_the_app

项目结构:现在在编辑器中打开您的应用程序文件夹。您将看到以下文件结构:

1. 更新基于类的组件的状态:现在我们将学习如何更新基于类的组件的状态。下面讨论这些步骤。

  • 进入 App.js 文件并清除所有内容。
  • 在 App.js 文件的顶部导入 React,{Component} from 'react '
  • 创建一个名为“App”的基于类的组件。这是我们重构的默认 App 组件。
  • 使用 this.state 创建一个名为 text 的状态对象 句法。给它一个值。
  • 在类中创建另一个方法并使用 'this.setState()' 方法更新组件的状态。
  • 在 JSX 元素中传递状态对象并调用该方法来更新特定事件(如按钮单击)的状态。

例子 :

文件名:App.js

Javascript
// The App.js file
import React,{Component} from 'react';
 
class App extends Component {
  constructor(){
    super()
    this.state={
      text : 'Welcome to Geeksforgeeks'
    }
  }
 
  goPremium(){
    this.setState({
      text:'Subscription successful'
    })
  }
  render() {
      return (
          
            

{this.state.text}

                       
      );    } }   export default App;


Javascript
// App.js file
import React, {useState} from "react";
  
function App(){
    const [state, setState] = useState({
      text:'Welcome to Geeksforgeeks'
    });
    return (
        
            

{state.text}

                     
    ); };   export default App;


运行应用程序的步骤:打开终端并键入以下命令。

npm start

输出:

2.更新功能组件的状态:更新功能组件的状态的步骤如下。

  • 清除 App.js 文件的 App 组件内的所有内容。
  • 在 App.js 文件的顶部导入 React, {useState} from “react”
  • 在 App 组件内部,使用以下语法创建一个名为“text”的状态。这是 react 功能组件的内置 useState 方法。 :
const [state, setState] = useState({text:'Default value of the text state'});
  • 使用 '{state.text}' 方法将 'text' 状态传递给 JSX 元素。
  • 使用“setState”方法更新特定事件的状态,例如按钮单击。语法如下:
setState({text:'Updated Content'})

例子:

文件名:App.js

Javascript

// App.js file
import React, {useState} from "react";
  
function App(){
    const [state, setState] = useState({
      text:'Welcome to Geeksforgeeks'
    });
    return (
        
            

{state.text}

                     
    ); };   export default App;


运行应用程序的步骤:打开终端并键入以下命令。

npm start

输出: