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. Portal component renders its children into a new subtree outside the current DOM hierarchy. We can use the following approach in ReactJS to use the React Suite Portal Component.
Portal Props:
- children: It is used to denote the Subcomponents.
- container: It is used to denote a render subcomponents Container.
- onRendered: It is used to denote a rendered callback function.
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: Now write down the following code in the App.js file. Here, App is our default component where we have written our code.
App.js
import React from 'react' import 'rsuite/dist/styles/rsuite-default.css' ; import { Portal } from 'rsuite' ; export default function App() { // State to handle visibility const [isVisible, setVisibility] = React.useState( false ); // Box Ref const box = React.useRef( null ); return ( <div style={{ display: 'block' , padding: 30, width: 500 }}> <h4>React Suite Portal Component</h4> <button type= "button" onClick={() => setVisibility(!isVisible)}> {!isVisible ? 'Mount Children' : 'Unmount Children' } </button> <div style={{ backgroundColor: 'yellow' , border: '5px solid black' , }}> Sample Text {isVisible ? ( <Portal container={box.current}> <span>Your Data is Mounted here :)</span> </Portal> ) : null } <div style={{ backgroundColor: 'orange' , border: '5px solid black' , }} ref={box} /> </div> </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:
Reference: https://rsuitejs.com/components/portal/