📌  相关文章
📜  如何强制 ReactJS 在每次 setState 调用时重新渲染?

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

如何强制 ReactJS 在每次 setState 调用时重新渲染?

当 React 组件的 state 或 props 发生变化时,该组件将立即重新渲染。当状态从代码中的某处更新时,许多用户界面 (UI) 组件会立即重新呈现。

如果我们想在不做任何更改的情况下渲染组件,我们可以使用 foceUpdate() 方法。当我们调用 forceUpdate() 时,它会重新渲染组件并跳过 shouldComponentUpdate() 方法。

如果没有理由重新渲染, shouldComponentUpdate() 方法允许您的组件退出更新生命周期。

句法:

this.forceUpdate()

创建反应应用程序:

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

    npx create-react-app foldername

  • 第 2 步:创建项目文件夹(即文件夹名称)后,使用以下命令移动到该文件夹:
    cd foldername

项目结构:它将如下所示。

App.js:现在在App.js文件中写下以下代码。在这里,App 是我们编写代码的默认组件。

App.js
import React from 'react';
class App extends React.Component {
  
  handleForceUpdate = () => {
    this.forceUpdate();
  };
  
  render() {
    return (
      
        

         Example of forceUpdate() method to           show re-rendering

         without changing state or props                           

Number is :             {Math.floor(Math.random() * (100000 - 1 + 1)) + 1}         

      
    );   } }    export default App;


运行应用程序的步骤:从项目的根目录使用以下命令运行应用程序:

npm start

输出:现在打开浏览器并转到http://localhost:3000/ ,您将看到以下输出:

说明:从上面的例子中我们可以看出,由于调用了 forceUpdate() 方法,组件正在重新渲染,而不会更改 props 或 state。重新渲染组件时会重新生成随机数。