Wednesday, November 20, 2024
Google search engine
HomeLanguagesReact Suite Steps Dynamic

React Suite Steps Dynamic

React Suite is a popular front-end library with a set of React components that are designed for the middle platform and back-end products. Steps is a navigation bar that guides users through the steps of a task.

Steps Dynamic will help to create dynamic steps which means we will have a button that will trigger different components displayed on the screen based upon step number.

Creating React Application And Installing Module:

Step 1: Create a React application using the following command:

npx create-react-app foldername

Step 2: After creating your project folder i.e. foldername, move to it using the following command:

cd foldername

Step 3: After creating the ReactJS application, Install the required module using the following command:

npm install rsuite

Project Structure: It will look like the following:

 

Example 1: Write the following code in the App.js file. Here, App is our default component where we have written our code. In this example, we will learn about Steps Dynamic. Step value will be changed using a button.

Javascript




import React, { useState } from 'react';
import 'rsuite/dist/rsuite.min.css';
import Steps from 'rsuite/Steps';
import { Button, IconButton, ButtonGroup, 
    ButtonToolbar } from 'rsuite';
import { Panel, PanelGroup } from 'rsuite';
import { Placeholder } from 'rsuite';
  
export default function App() {
    const { Paragraph } = Placeholder;
    const [step, setStep] = React.useState(0);
    const onChange = nextStep => {
        setStep(nextStep < 0 ? 0 : nextStep > 3 ? 3 : nextStep);
    };
  
    const onNext = () => onChange(step + 1);
    const onPrevious = () => onChange(step - 1);
    return (
        <div>
            <h1 style={{ color: 'green' }}>
                neveropen
            </h1>
            <h3>React Suite Steps Dynamic </h3>
              
            <Steps current={step}>
                <Steps.Item title="Finished" 
                    description="Description" />
                <Steps.Item title="In Progress" 
                    description="Description" />
                <Steps.Item title="Waiting" 
                    description="Description" />
                <Steps.Item title="Waiting" 
                    description="Description" />
            </Steps>
            <Panel header={`Step: ${step + 1}`}>
                <Paragraph />
            </Panel>
            <hr />
              
            <ButtonGroup>
                <Button onClick={onPrevious} disabled={step === 0}>
                    Previous
                </Button>
                <Button onClick={onNext} disabled={step === 3}>
                    Next
                </Button>
            </ButtonGroup>
        </div>
    )
}


Step to Run Application: Run the application using the following command from the root directory of the project:

npm start

Output: Now open your browser and go to http://localhost:3000/, you will see the following output:

 

Example 2: In this example, we will learn how we can dynamically manipulate the content of dynamic steps. We will pass the value of step as prop to the function that will return different components .

Javascript




import React, { useState } from 'react';
import 'rsuite/dist/rsuite.min.css';
import Steps from 'rsuite/Steps';
import { Button, IconButton, ButtonGroup, 
    ButtonToolbar } from 'rsuite';
import { Panel, PanelGroup } from 'rsuite';
import { Placeholder } from 'rsuite';
  
export default function App() {
    const [step, setStep] = React.useState(0)
    const onChange = nextStep => {
        setStep(nextStep < 0 ? 0 : nextStep > 3 ? 3 : nextStep);
    };
  
    const onNext = () => onChange(step + 1);
    const onPrevious = () => onChange(step - 1);
    return (
        <div>
            <h1 style={{ color: 'green' }}>
                neveropen
            </h1>
            <h3>React Suite Steps Dynamic </h3>
            <Steps current={step}>
                <Steps.Item title="Finished" 
                    description="Description" />
                <Steps.Item title="In Progress" 
                    description="Description" />
                <Steps.Item title="Waiting" 
                    description="Description" />
                <Steps.Item title="Waiting" 
                    description="Description" />
            </Steps>
            <Panel header={`Step: ${step + 1}`}>
                <Paragraph value={step} />
            </Panel>
            <hr />
            <ButtonGroup>
                <Button onClick={onPrevious} 
                    disabled={step === 0}>
                    Previous
                </Button>
                <Button onClick={onNext} 
                    disabled={step === 3}>
                    Next
                </Button>
            </ButtonGroup>
        </div>
    )
}
function Paragraph(props) {
    if (props.value == '1') {
        return (<div style={{ color: 'red' }}>
            <h1>neveropen</h1>
        </div>)
    }
    else {
        if (props.value == '2') {
            return (<div style={{ color: 'blue' }}>
                <h1>Hello Geeks!!!</h1>
            </div>)
  
        }
        else {
            return (<div style={{ color: 'orange' }}>
                <h1>Welcome to Steps Dynamic</h1>
            </div>)
        }
    }
}


Output:

 

Reference: https://rsuitejs.com/components/steps/#dynamic

Whether you’re preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, neveropen Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we’ve already empowered, and we’re here to do the same for you. Don’t miss out – check it out now!

RELATED ARTICLES

Most Popular

Recent Comments