Open In App

React Suite Cascader Controlled

Last Updated : 01 Sep, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

React suite is a library of React components, sensible UI design, and a friendly development experience. It is supported in all major browsers. It provides pre-built components of React which can be used easily in any web application. In this article, we’ll learn about React suite Cascader Controlled.

A cascader is used for a single selection of data with a hierarchical relationship structure. A controlled cascader is one that specifies the values of the selected items.

Cascader Props:

  • appearance: It is used for the component appearance.
  • block: It is used to block an entire row.
  • childrenKey: It is used to set the children’s key in data.
  • classPrefix: It is used to indicate the component CSS class’s prefix.
  • cleanable: It is used to indicate whether the option can be emptied or not.
  • container: It is used to set the rendering container.
  • data: It is used to denote the selectable data.
  • defaultOpen: It is used to denote the default value of the open property.
  • defaultValue: It is used to denote the default value.
  • disabled: It is used to indicate whether the component is disabled or not.
  • disabledItemValues: It is used to disable optionally.
  • height: It is used to denote the menu height.
  • lnline: It is used to make the menu displayed directly when the component is initialized.
  • labelKey: It is used to set the options to display the ‘key’ in ‘data’.
  • menuHeight: It is used to set the height of the menu.
  • menuWidth: It is used to set the width of the menu.
  • onChange: It is a callback function that is triggered when the value changes.
  • onClean: It is a callback function that is triggered when the value is clean.
  • onClose: It is a callback function that is triggered on a close event.
  • onEnter: It is a callback function that is triggered before the overlay transitions in.
  • onEntered: It is a callback function that is triggered after the overlay finishes transitioning in.
  • onEntering: It is a callback function that is triggered as the overlay begins to transition in.
  • onExit: It is a callback function that is triggered right before the overlay transitions out.
  • onExited: It is a callback function that is triggered after the overlay finishes transitioning out.
  • onExiting: It is a callback function that is triggered as the overlay begins to transition out.
  • onOpen: It is a callback function that is triggered on open of the component.
  • onSearch: It is a callback function for the search.
  • onSelect: It is a callback function that is triggered on the selection of an option.
  • parentSelectable: It is used to make the parent node selectable.
  • placeholder: It is used to denote the placeholder.
  • placement: It is used for the placement of components.
  • preventOverflow: It is used to prevent floating element overflow.
  • renderExtraFooter: It is used for the custom render extra footer.
  • renderMenu: It is used for customizing the Rendering Menu list.
  • renderMenuItem: It is used for the custom render menu items
  • renderValue: It is used for the custom Render selected options.
  • searchable: It is used to indicate whether you can search for options or not.
  • size: It is used to denote the picker size.
  • toggleComponentClass: It can be used for the custom element for this component.
  • value: It is used to denote the value (Controlled).
  • valueKey: It is used to set the option value ‘key’ in ‘data’.

Syntax:

<Cascader 
    value={value} 
    onChange={setValue} 
    data={data} 
/>

Creating React Application and Installing Module:

Step 1: Create a react application using the given command:

npm create-react-app projectname

Step 2: After creating your project, move to it using the given command:

cd projectname

Step 3: Now Install the rsuite node package using the given command:

npm install rsuite

Project Structure: Now your project structure should look like the following:

 

Example 1: Below is the example that demonstrates the React Suite Controlled Cascader component.

Javascript




import "rsuite/dist/rsuite.min.css";
import { Cascader } from "rsuite";
import { useState } from "react";
  
const customData = [
    {
        label: "Data Structures",
        value: 1,
        children: [
            {
                label: "Queue",
                value: 2,
                children: [
                    {
                        label: "Priority Queue",
                        value: 3,
                    },
                    {
                        label: "FIFO Queue",
                        value: 4,
                    },
                ],
            },
            {
                label: "Linked List",
                value: 5,
                children: [
                    {
                        label: "Circular",
                        value: 6,
                    },
                    {
                        label: "Double",
                        value: 7,
                    },
                    {
                        label: "Single",
                        value: 8,
                    },
                ],
            },
        ],
    },
    {
        label: "Algorithms",
        value: 9,
        children: [
            {
                label: "Search",
                value: 2,
                children: [
                    {
                        label: "Binary Search",
                        value: 3,
                    },
                    {
                        label: "Linear Search",
                        value: 4,
                    },
                ],
            },
            {
                label: "Sorting",
                value: 5,
                children: [
                    {
                        label: "Bubble Sort",
                        value: 6,
                    },
                    {
                        label: "Selection Sort",
                        value: 7,
                    },
                    {
                        label: "Insertion Sort",
                        value: 8,
                    },
                ],
            },
        ],
    },
]
  
export default function App() {
    const [value, setValue] = useState(3);
  
    return (
        <div>
            <div style={
                {
                    textAlign: "center"
                }}>
                <h2>GeeksforGeeks</h2>
                <h4 style={{ color: "green" }}>
                    React Suite Cascader Controlled
                </h4>
            </div>
            <div style={
                {
                    padding: 20,
                    textAlign: "center"
                }}>
                <div>
                    <Cascader
                        value={value}
                        onChange={setValue}
                        style={{ width: 300 }}
                        data={customData}
                    />
                </div>
            </div>
        </div>
    );
}


Output:

 

Example 2: Below is another example that demonstrates the Controlled elements from two different lists in Cascader component.

Javascript




import "rsuite/dist/rsuite.min.css";
import { Cascader } from "rsuite";
import { useState } from "react";
  
const customData = [
    {
        label: "Data Structures",
        value: 1,
        children: [
            {
                label: "Queue",
                value: 2,
                children: [
                    {
                        label: "Priority Queue",
                        value: 3,
                    },
                    {
                        label: "FIFO Queue",
                        value: 4,
                    },
                ],
            },
            {
                label: "Linked List",
                value: 5,
                children: [
                    {
                        label: "Circular",
                        value: 6,
                    },
                    {
                        label: "Double",
                        value: 7,
                    },
                    {
                        label: "Single",
                        value: 8,
                    },
                ],
            },
        ],
    },
    {
        label: "Algorithms",
        value: 9,
        children: [
            {
                label: "Search",
                value: 10,
                children: [
                    {
                        label: "Binary Search",
                        value: 11,
                    },
                    {
                        label: "Linear Search",
                        value: 12,
                    },
                ],
            },
            {
                label: "Sorting",
                value: 13,
                children: [
                    {
                        label: "Bubble Sort",
                        value: 14,
                    },
                    {
                        label: "Selection Sort",
                        value: 15,
                    },
                    {
                        label: "Insertion Sort",
                        value: 16,
                    },
                ],
            },
        ],
    },
]
  
export default function App() {
    const [value, setValue] = useState(1_2);
  
    return (
        <div>
            <div style={
                {
                    textAlign: "center"
                }}>
                <h2>GeeksforGeeks</h2>
                <h4 style={
                    {
                        color: "green"
                    }}>
                    React Suite Cascader Controlled
                </h4>
            </div>
            <div style={
                {
                    padding: 20,
                    textAlign: "center"
                }}>
                <div>
                    <Cascader
                        value={value}
                        onChange={setValue}
                        style={{ width: 300 }}
                        data={customData}
                    />
                </div>
            </div>
        </div>
    );
}


Output:

 

Reference: https://rsuitejs.com/components/cascader/#contorlled



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads