📜  在 ReactJS 中使用枚举的条件渲染组件

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

在 ReactJS 中使用枚举的条件渲染组件

在某些情况下,React Js 开发者需要根据特定条件渲染和隐藏组件。例如,在构建待办事项列表应用程序时,如果有任何待处理的任务可用,开发人员需要渲染任务,否则他们需要显示“没有可用的待处理任务”之类的消息。

React Js中有几种方法可以条件渲染组件,例如if-else,三元运算符等。如果只有2到3个组件可以条件渲染,开发人员可以使用if-else或switch case方法。如果有超过 3 个组件可用于有条件地渲染,则 if-else 变得复杂。因此,开发人员应该使用枚举来保持代码整洁。

在本教程中,我们将学习开发人员如何使用枚举有条件地渲染组件。从枚举开始,用户需要创建一个新的 React 项目。

创建反应项目:

第 1 步:要创建一个新的 React 项目,请在终端上运行以下命令。

npx create-react-app testapp

第 2 步:要移动到项目目录中,请在终端上运行以下命令。

cd testapp

现在,您已经成功创建了 react 应用程序。

接下来,用户需要在我们的项目中创建 2 到 3 个组件。在 ' src ' 文件夹中创建一个 ' components ' 文件夹。此外,在 components 文件夹中创建first.jssecond.js文件。

项目结构:应该如下图所示。

在这个文件中,我们将添加一些基本的 React 代码以在网页上呈现。用户需要将以下代码添加到“first.js”文件中。

文件名:first.js

Javascript
import React, { Component } from 'react';
 
// Some basic code to render first component
class First extends Component {
  render() {
    return (
      
        

GeeksForGeeks

        

This is a first component

      
    );   } }    export default First;


Javascript
import React, { Component } from 'react';
 
// some basic code to render second component
class Second extends Component {
  render() {
    return (
      
        

GeeksForGeeks

        

This is a second component.

      
    );   } }    export default Second;


Javascript
import React, { Component } from 'react';
import Second from './components/second'
import First from './components/first'
 
// Creating enum object
const Enumobj = {
  first: ,
  second: 
};
 
// Creating enum function to return
// Particular component according to state value
function Enum({ state }) {
  return 
{Enumobj[state]}
; }   // Call enum function inside the App component class App extends Component {   render() {     return (       
                        
    );   } }    export default App;



在这个文件中,我们将添加一些与第一个组件不同的基本 React 代码。因此,我们可以知道哪个组件正在屏幕上呈现。编辑“second.js”文件并在其中添加以下代码。

文件名:second.js

Javascript

import React, { Component } from 'react';
 
// some basic code to render second component
class Second extends Component {
  render() {
    return (
      
        

GeeksForGeeks

        

This is a second component.

      
    );   } }    export default Second;


使用枚举渲染组件

第 1 步:在 javascript 中,我们可以使用键值对创建一个对象并将其用作枚举。下面,您可以看到一个带有键值对的 javascript 对象的演示。

句法:

const Enumobj = {
  key: value,
};

例子:

const Enumobj = {
  first: ,
  second: 
};

第 2 步:现在,我们将创建一个 javascript函数,该函数将状态作为参数,并根据状态返回一个 React 组件。

句法:

function Enum({state}){
  return {object[state]};
}

例子:

function Enum({ state }) {
  return 
{Enumobj[state]}
; }

第 3 步:让我们在“ App ”组件中嵌入“ Enum ”函数。在调用“枚举”函数时,我们将添加状态值作为道具。

句法:

return (
      
);

例子:

return (
      
);

文件名:App.js

在 App.js 文件中,我们将首先创建一个枚举对象。之后,我们将添加一个“枚举”函数来根据状态值渲染组件。最后,我们将编辑“ App ”组件并调用组件内部的“ enum ”函数来有条件地渲染它。用户需要将以下代码添加到“ App.js ”文件中。

文件名:App.js

Javascript

import React, { Component } from 'react';
import Second from './components/second'
import First from './components/first'
 
// Creating enum object
const Enumobj = {
  first: ,
  second: 
};
 
// Creating enum function to return
// Particular component according to state value
function Enum({ state }) {
  return 
{Enumobj[state]}
; }   // Call enum function inside the App component class App extends Component {   render() {     return (       
                        
    );   } }    export default App;


运行步骤:用户需要在当前目录下的终端下运行命令才能看到输出。

npm start

输出: