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.
Project Structure
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/