React.js Blueprint MultiSelect Props 接口

React.js Blueprint MultiSelect Props 接口

Blueprint 是一个基于React的Web界面工具包。该库非常优化,适用于构建复杂和数据密集的桌面应用程序界面。

本文将讨论React.js Blueprint MultiSelect Props接口。MultiSelect组件通过一个用户可以选择多个项目的列表的UI来显示。MultiSelect使用Popober包装的TagInput进行渲染。

React.js Blueprint MultiSelect Props:

  • activeItem: 它表示当前活动的项目,用于键盘交互。
  • className: 它表示要传递给子元素的类名列表。
  • createNewItemFromQuery: 它允许从当前提供的查询字符串创建新项目。
  • createNewItemPosition: 它表示createNewItem在列表中的位置,可以是第一个或最后一个。
  • createNewItemRenderer: 它可以从当前查询字符串中创建一个可选择的 Create Item 选项。
  • disabled: 它指定组件是禁用还是可交互的。
  • fill:
    • fullWidth: 它确定组件是否应占据其容器的全部宽度。
    • initialContent: 它表示在查询字符串为空时渲染的默认React组件。
    • inputProps: 它表示要传递给查询InputGroup的props。
    • itemDisabled: 它确定给定的项是否被禁用。
    • itemListPredicate: 它用于自定义整个项数组的查询。
    • itemListRenderer: 它用于自定义渲染下拉菜单的内容。
    • itemPredicate: 它用于自定义单个项的查询。
  • itemRenderer: 它用于在下拉列表中自定义渲染项目。
  • items: 它表示列表中的项目数组。
  • itemsEqual: 它用于确定两个项目是否相等。
  • menuProps: 它表示用于扩展到包含可选择选项的菜单列表框中的props。
  • noResults: 当过滤返回零结果时,它用于渲染一个React组件。
  • onActiveItemChange: 这是一个回调函数,当用户操作更改活动项目时被调用。
  • onItemSelect: 这是一个回调函数,在列表中选择一个项目时被调用,通常是通过点击或按下回车键来触发。
  • onItemsPaste: 这是一个回调函数,在同时选择多个项目时被调用。
  • onClear: 它将在TagInput内部呈现一个清除按钮。
  • onQueryChange: 这是一个回调函数,当查询字符串发生变化时被调用。
  • onRemove: 这是一个回调函数,当通过在TagInput中删除标签来从选择中移除项目时被调用。
  • openOnKeyDown: 它决定了组件是否应该在TagInput中的按键按下事件之前等待以打开其弹出窗口。
  • placeholder: 它表示输入框的占位符文本。
  • popoverContentProps:
    • popoverProps: 这表示要传播给Popover的属性。
    • popoverRef: 这表示Popover2实例的可选引用。
    • popoverTargetProps: 这表示要添加到弹框目标包装元素的属性。
    • query: 这表示传递给itemListPredicate或itemPredicate以筛选项目的查询字符串。
    • resetOnClose: 这确定弹出框关闭时活动项目是否应重置为第一个匹配的项目。
    • resetOnQuery: 这确定每次查询更改时活动项目是否应重置为第一个匹配的项目。
  • resetOnSelect: 确定当选择一个项目时,活动项目是否应该重置为第一个匹配的项目。
  • scrollToActiveItem: 确定活动项目是否在属性更改时始终滚动到视图中。
  • selectedItems: 表示受控选定值的列表。
  • tagInputProps: 表示传播到TagInput的props。
  • tagRenderer: 用于将项目转换为标签内容。

语法:

<MultiSelect
        items={ITEM_DATA}
        onClear={...}
          ...
/>

创建React应用并安装模块:

步骤1 :使用以下命令创建React应用:

npm create-react-app appname

步骤2: 在创建好项目文件夹 appname 后,使用以下命令进入该文件夹:

cd appname

步骤3 :创建ReactJS应用程序后,使用以下命令安装所需的模块:

npm install @blueprintjs/core

项目结构:

React.js Blueprint MultiSelect Props 接口

步骤4: 运行项目如下:

npm start

示例1: 下面的示例演示了使用MultiSelect组件的items、selectedItems、tagRenderer、onItemSelect、onRemove、onClear等属性。

import { MultiSelect } from "@blueprintjs/select"; 
import { MenuItem } from "@blueprintjs/core"; 
import "normalize.css"; 
import "@blueprintjs/core/lib/css/blueprint.css"; 
import "@blueprintjs/select/lib/css/blueprint-select.css"; 
import { useState } from "react"; 
  
export default function App() { 
  
    const [item, setItem] = useState("Stack"); 
    const [items, setItems] = useState([]); 
  
    return ( 
        <center> 
            <div style={{ textAlign: "center", color: "green" }}> 
                <h1>GeeksforGeeks</h1> 
                <h2>ReactJs Blueprint MultiSelect Props Interface</h2> 
            </div> 
            <div style={{ width: 700 }}> 
                <MultiSelect 
                    items={["Stack", "Queue",  
                      "Linked List", "Array", "Heaps"]} 
                    selectedItems={items} 
                    itemRenderer={(val, itemProps) => { 
                        return ( 
                            <MenuItem 
                                key={val} 
                                text={val} 
                                onClick={(elm) => { 
                                    setItem(elm.target.textContent); 
                                    setItems((items) => { 
                                        return [...items,  
                                             elm.target.textContent]; 
                                    }); 
                                }} 
                                active={itemProps.modifiers.active} 
                            /> 
                        ); 
                    }} 
                    onItemSelect={() => { }} 
                    tagRenderer={(item) => item} 
                    onRemove={(item) => { 
                        setItems((items) => items.filter( 
                           (elm) => elm !== item)); 
                    }} 
                    onClear={() => setItems([])} 
                /> 
            </div> 
        </center> 
    ); 
}

输出:

React.js Blueprint MultiSelect Props 接口

示例2: 下面的示例演示了MultiSelect组件的activeItems和placeholder属性的用法。

import { MultiSelect } from "@blueprintjs/select"; 
import { MenuItem } from "@blueprintjs/core"; 
import "normalize.css"; 
import "@blueprintjs/core/lib/css/blueprint.css"; 
import "@blueprintjs/select/lib/css/blueprint-select.css"; 
import { useState } from "react"; 
  
export default function App() { 
  
    const [item, setItem] = useState("Python"); 
    const [items, setItems] = useState([]); 
  
    return ( 
        <center> 
            <div style={{ textAlign: "center", color: "green" }}> 
                <h1>GeeksforGeeks</h1> 
                <h2>ReactJs Blueprint MultiSelect Props Interface</h2> 
            </div> 
            <div style={{ width: 700 }}> 
                <MultiSelect 
                    activeItem={item} 
                    items={["Stack", "Queue", "Linked List", 
                           "Array", "Heaps"]} 
                    selectedItems={items} 
                    itemRenderer={(val, itemProps) => { 
                        return ( 
                            <MenuItem 
                                key={val} 
                                text={val} 
                                onClick={(elm) => { 
                                    setItem(elm.target.textContent); 
                                    setItems((items) => { 
                                        return [...items,  
                                        elm.target.textContent]; 
                                    }); 
                                }} 
                                active={itemProps.modifiers.active} 
                            /> 
                        ); 
                    }} 
                    placeholder="Select data structures..."
                    onItemSelect={() => { }} 
                    tagRenderer={(item) => item} 
                    onRemove={(item) => { 
                        setItems((items) => items.filter( 
                          (elm) => elm !== item)); 
                    }} 
                    onClear={() => setItems([])} 
                /> 
            </div> 
        </center> 
    ); 
}

输出:

React.js Blueprint MultiSelect Props 接口

参考: https://blueprintjs.com/docs/#select/multi-select.props-interface

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程