📜  reactstrap 下拉列表 (1)

📅  最后修改于: 2023-12-03 15:34:41.467000             🧑  作者: Mango

Reactstrap Dropdown

Reactstrap is a popular library that provides pre-built React components that can be easily used to create beautiful and responsive user interfaces. One of the components provided by Reactstrap is the Dropdown component.

The Dropdown component allows you to create a dropdown menu that can be triggered by a button or a link. The menu can include any number of items, each of which can be customized with its own text, style, and event handling.

Installation

You can install Reactstrap using npm:

npm install --save reactstrap
Usage

To use the Dropdown component, you must first import it into your component:

import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';

Then, you can create a dropdown menu using the following template:

<Dropdown isOpen={isOpen} toggle={toggle}>
  <DropdownToggle caret>
    {toggleText}
  </DropdownToggle>
  <DropdownMenu>
    <DropdownItem header>Header</DropdownItem>
    <DropdownItem disabled>Action (disabled)</DropdownItem>
    <DropdownItem>Action</DropdownItem>
    <DropdownItem divider />
    <DropdownItem tag="a" href="#">Link</DropdownItem>
  </DropdownMenu>
</Dropdown>

The isOpen and toggle props are used to control the visibility of the dropdown menu. toggleText is the text that will appear on the button or link that triggers the dropdown.

The DropdownMenu component contains all of the items in the dropdown. You can customize each item using the DropdownItem component, which can include a header, be disabled, or include a divider.

You can also customize the behavior of each item by adding an onClick or href prop to the DropdownItem component.

Example

Here's an example of a simple dropdown menu that allows the user to select a color:

import React, { useState } from 'react';
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';

const colors = [
  { value: 'red', label: 'Red' },
  { value: 'green', label: 'Green' },
  { value: 'blue', label: 'Blue' },
];

const ColorDropdown = () => {
  const [isOpen, setIsOpen] = useState(false);
  const [selectedColor, setSelectedColor] = useState(colors[0]);
  
  const toggle = () => setIsOpen(!isOpen);
  
  const handleColorSelect = color => {
    setSelectedColor(color);
    setIsOpen(false);
  };
  
  return (
    <Dropdown isOpen={isOpen} toggle={toggle}>
      <DropdownToggle caret>
        {selectedColor.label}
      </DropdownToggle>
      <DropdownMenu>
        {colors.map(color => (
          <DropdownItem
            key={color.value}
            onClick={() => handleColorSelect(color)}
            active={selectedColor.value === color.value}
          >
            {color.label}
          </DropdownItem>
        ))}
      </DropdownMenu>
    </Dropdown>
  );
};

export default ColorDropdown;

In this example, we're using the useState hook to manage the state of the dropdown menu. We're also using the DropdownItem component's active prop to highlight the currently selected color.