介绍
react-select-nested 是一个 React 组件,它可以让用户选择嵌套的选项。这个组件非常适用于需要选择复杂数据结构的场景,比如选择组织架构。
安装
react-select-nested 可以通过 npm 安装:
--- ------- ------------------- ------
使用
react-select-nested 由两个组件组成:NestedSelect
和 NestedMultiSelect
。它们的用法类似于 react-select。
NestedSelect
NestedSelect
组件是单选组件。它有以下 props:
prop | 类型 | 默认值 | 说明 |
---|---|---|---|
options | Array | [] | 选项数组 |
value | Object | null | 当前选中的选项对象 |
onChange | Function | noop | 选中选项时的回调 |
labelKey | String 或 Function | 'label' | 选项对象中用作 label 的 key |
valueKey | String 或 Function | 'value' | 选项对象中用作 value 的 key |
下面是一个简单的例子:
------ ----- ---- -------- ------ - ------------ - ---- ---------------------- ----- ------- - - - ------ ----- ----- --- ------ --------- --------- - - ------ ------ ----- --- ------ ---------- -- - ------ ------ ----- --- ------ ---------- --------- - - ------ ------------- ------ ------------- -- -- -- -- -- -- ----- --- ------- --------------- - ----- - - --------------- ----- -- ------------ - ------ -- - --------------- --------------- ------ --- -- -------- - ----- - -------------- - - ----------- ------ - ----- ---------------- ------------ ------------- ---------------------- ---------------------------- ----------------- -- ------ -- - -
NestedMultiSelect
NestedMultiSelect
组件是多选组件。它的 props 和 NestedSelect
类似,但有以下区别:
prop | 类型 | 默认值 | 说明 |
---|---|---|---|
value | Array | [] | 当前选中的选项数组 |
onChange | Function | noop | 选中选项时的回调 |
labelKey | String | 'label' | 选项对象中用作 label 的 key |
valueKey | String | 'value' | 选项对象中用作 value 的 key |
isMulti | Boolean | true | 是否多选 |
placeholder | String | '' | 占位符文本 |
下面是一个简单的例子:
------ ----- ---- -------- ------ - ----------------- - ---- ---------------------- ----- ------- - - - ------ ----- ----- --- ------ --------- --------- - - ------ ------ ----- --- ------ ---------- -- - ------ ------ ----- --- ------ ---------- --------- - - ------ ------------- ------ ------------- -- -- -- -- -- -- ----- --- ------- --------------- - ----- - - --------------- --- -- ------------ - ------- -- - --------------- --------------- ------- --- -- -------- - ----- - -------------- - - ----------- ------ - ----- --------------------- ------------ ------------------ ---------------------- ---------------------------- ----------------- -- ------ -- - -
指南
react-select-nested 有许多用法和设置,这里介绍一些有用的 tips:
将选项预处理
你可以预处理选项,为其添加一些属性,比如默认选中状态、是否禁用等。下面是一个例子:
----- ------- - - - ------ ----- ----- --- ------ --------- --------- - - ------ ------ ----- --- ------ ---------- ----------- ----- -- - ------ ------ ----- --- ------ ---------- ----------- ------ --------- - - ------ ------------- ------ ------------- ----------- ----- -- -- -- -- -- --
动态加载选项
如果你的选项数据很大,可以考虑动态加载选项。NestedSelect
组件的 options
prop 和 NestedMultiSelect
组件的 options
prop 都可以接收一个函数,这个函数可以返回一个 Promise 对象,然后在 Promise resolve 时返回选项数组。
下面是一个例子:
----- ----------- - ---------- -- --- --------------- -- - -- ----- ---------- ---------------- ------------- -- - ----- ------- - - - ------ ----- ----- --- ------ --------- --------- - - ------ ------ ----- --- ------ ---------- -- - ------ ------ ----- --- ------ ---------- --------- - - ------ ------------- ------ ------------- -- -- -- -- -- -- ----------------- -- ------ --- ----- --- ------- --------------- - ----- - - --------------- ----- -- ------------ - ------ -- - --------------- --------------- ------ --- -- -------- - ----- - -------------- - - ----------- ------ - ----- ---------------- ------------ ------------- ---------------------- ---------------------------- ------------------------- -- ------ -- - -
自定义样式
react-select-nested 可以定制外观和样式。你可以传递一些自定义的 CSS 类名,然后在这个类名下添加样式。
下面是一个例子:
------ ----- ---- -------- ------ ---------- ---- ------------- ------ - ------------ - ---- ---------------------- ------ ------ ---- ---------------------- ----- ------- - - - ------ ----- ----- --- ------ --------- --------- - - ------ ------ ----- --- ------ ---------- ----------- ----- -- - ------ ------ ----- --- ------ ---------- ----------- ------ --------- - - ------ ------------- ------ ------------- ----------- ----- -- -- -- -- -- -- ----- ------------ - - ----- -------- -- -- ------------ ---------------- ---------- ------------- ------ ---------- -- --- --- ------- -- -- ------ --- ------- ---------- ------ -- -- ------------ ---------------- ---------------- - --------- - -------- ------ ---------------- - ------- - -------- --- -------- ---------- ------ -- -- ------------ ------- --------------- - ---- ----- -------- - ---- ----- ------ ---------- --------------- - -- - - --- -------- - ------- ---------- - ------------ --------------- - --------- - ------- -- --- ------------------ -------- -- -- ------------ ------ ------- --- ------------------- -------- -- -- ------------ ---------------- ------- --- -- ----- --- ------- --------------- - ----- - - --------------- ----- -- ------------ - ------ -- - --------------- --------------- ------ --- -- -------- - ----- - -------------- - - ----------- ------ - ----- ---------- ----- ------------ ------------- ---------------------- ---------------------------- ----------------- ------------------------------- ------------------------------- --------------------- -- ------ -- - -
结论
react-select-nested 是一个非常实用的 React 组件,它可以帮助我们解决复杂数据结构的选择问题。它的使用非常简单,你可以通过安装 npm 包并使用 NestedSelect
和 NestedMultiSelect
组件来快速实现嵌套选项的选择功能。如果你需要更多高级用法,比如动态加载选项、自定义样式等,react-select-nested 也提供了相应的 API。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60066b5651ab1864dac66b71