Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App
geeksforgeeks
Browser
Continue

Related Articles

React Suite Cascader Controlled

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

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


My Personal Notes arrow_drop_up
Last Updated : 01 Sep, 2022
Like Article
Save Article
Similar Reads
Related Tutorials