📜  ReactJS 常青 SelectMenu 组件

📅  最后修改于: 2022-05-13 01:56:34.617000             🧑  作者: Mango

ReactJS 常青 SelectMenu 组件

React Evergreen 是一个流行的前端库,其中包含一组用于构建漂亮产品的 React 组件,因为该库灵活、合理的默认设置和用户友好。 SelectMenu 组件允许用户从下拉列表中选择多个项目。我们可以在 ReactJS 中使用以下方法来使用 Evergreen SelectMenu 组件。

选项道具:

  • children:用于将子元素传递给该组件。
  • disabled:用于表示该选项是否被禁用。
  • height:用于表示高度。
  • isHighlighted:用于指示是否突出显示某项。
  • isSelectable:用于指示某项是否可选。
  • isSelected:用于表示某项是否被选中。
  • item:用于表示我们的 SelectMenu 的项目。
  • onSelect:这是一个在选择选项时触发的函数。
  • onDeselect:当一个选项被取消选择时触发的函数。
  • style:用于设置组件的样式。

选项列表道具:

  • options:用于表示要在菜单中显示的选项。
  • close:它是一个在组件关闭时触发的函数。
  • width:用于表示选择菜单的宽度。
  • height:用于表示选择菜单的高度。
  • isMultiSelect:设置为 true 时会考虑多选。
  • closeOnSelect:当设置为 true 时,菜单在选项选择时关闭。
  • selected:用于表示选定的值/值。
  • onSelect:这是一个在选择选项时触发的函数。
  • onDeselect:当一个选项被取消选择时触发的函数。
  • onFilterChange:它是为过滤器的onChange事件触发的函数。
  • hasFilter:设置为true时用于显示过滤器。
  • optionSize:用于表示期权的大小。
  • renderItem:它是一个可用于渲染项目的函数。
  • filterPlaceholder:用于表示搜索过滤器的占位符。
  • filterIcon:用于表示搜索过滤器的图标。
  • optionsFilter:这是一个用于过滤选项的函数。
  • defaultSearchValue:用于表示默认搜索值。

选择菜单道具:

  • 标题:用于表示选择菜单的标题。
  • width:用于表示选择菜单的宽度。
  • height:用于表示选择菜单的高度。
  • options:用于表示要在菜单中显示的选项。
  • onSelect:这是一个在选择选项时触发的函数。
  • onDeselect:当一个选项被取消选择时触发的函数。
  • selected:用于表示选定的值/值。
  • isMultiSelect:设置为 true 时会考虑多选。
  • hasTitle:设置为true时用于显示标题。
  • hasFilter:设置为true时用于显示过滤器。
  • filterPlaceholder:用于表示搜索过滤器的占位符。
  • filterIcon:用于表示搜索过滤器的图标。
  • onFilterChange:它是为过滤器的onChange事件触发的函数。
  • position:用于选择菜单的位置。
  • detailView:它是在选择菜单右侧呈现的函数或节点,用于在选择选项时提供附加信息。
  • titleView:是在Select Menu的header部分渲染的函数或节点,用于自定义header。
  • emptyView:它是一个函数或一个节点,当没有选项时,而不是选项列表被渲染。
  • closeOnSelect:用于指示是否在选择时关闭组件。
  • itemRenderer:它是一个函数,可用于在选择菜单中呈现自定义项。
  • itemHeight:用于表示选择菜单列表中项目的高度。

SelectMenuContent 道具:

  • close:它是一个在组件关闭时触发的函数。
  • 标题:用于表示选择菜单的标题。
  • width:用于表示选择菜单的宽度。
  • height:用于表示选择菜单的高度。
  • headerHeight:用于表示表头的高度。
  • options:用于表示要在菜单中显示的选项。
  • hasTitle:设置为true时用于显示标题。
  • hasFilter:设置为true时用于显示过滤器。
  • filterPlaceholder:用于表示搜索过滤器的占位符。
  • filterIcon:用于表示搜索过滤器的图标。
  • listProps:用于表示传递给该组件的道具列表。
  • isMultiSelect:设置为 true 时会考虑多选。
  • closeOnSelect:当设置为 true 时,菜单在选项选择时关闭。
  • titleView:用于表示放在header部分的节点。
  • detailView:用于表示放置在选项旁边的节点。
  • emptyView:用于表示没有选项时显示的节点而不是选项列表。

创建 React 应用程序并安装模块:

  • 第 1 步:使用以下命令创建一个 React 应用程序:

    npx create-react-app foldername
  • 第 2 步:创建项目文件夹(即文件夹名称)后使用以下命令移动到该文件夹:

    cd foldername
  • 第 3 步:创建 ReactJS 应用程序后,安装 必需的 模块使用以下命令:

    npm install evergreen-ui

项目结构:它将如下所示。

项目结构

示例:现在在App.js文件中写下以下代码。在这里,App 是我们编写代码的默认组件。

App.js
import React from 'react'
import { SelectMenu, Button } from 'evergreen-ui'
  
export default function App() {
  
  // State for selected 
  const [selected, setSelected] = React.useState(null)
  
  // Sample Options
  const options = [
    { label: 'Monday', value: 'Monday' },
    { label: 'Tuesday', value: 'Tuesday' },
    { label: 'Wednesday', value: 'Wednesday' },
    { label: 'Thursday', value: 'Thursday' },
    { label: 'Friday', value: 'Friday' },
    { label: 'Saturday', value: 'Saturday' },
    { label: 'Sunday', value: 'Sunday' },
  ]
  
  return (
    
      

ReactJS Evergreen SelectMenu Component

       setSelected(item.value)}       >            
  ); }


运行应用程序的步骤:从项目的根目录使用以下命令运行应用程序:

npm start

输出:现在打开浏览器并转到http://localhost:3000/ ,您将看到以下输出:

参考: https://evergreen.segment.com/components/select-menu