JGuang

选择组

Selector · Ant Design Mobile

交互预览
npm install antd-mobile@5.43.0

选择组 Selector

 在一组选项中选择一个或多个。

安装

npm install antd-mobile@5.43.0

antd-mobile 是移动网页组件库,不是 React Native 或小程序组件。React 19 项目需在入口用 unstableSetRender 注册 createRoot,否则 Toast、Dialog 等命令式 API 无法渲染;深色模式通过 <html data-prefers-color-scheme="dark"> 切换。

示例来自 Ant Design Mobile 官方仓库(MIT),固定在 npm 5.43.0 对应的提交;示例中的 DemoBlock 等展示辅助组件由 JGuang 重写,不属于 antd-mobile 的 API。

 在一组选项中选择一个或多个。

何时使用

提供多个选项供用户选择,一般在筛选和表单中使用。

示例

Selector

属性

属性说明类型默认值
columns列数(注意 grid 布局在 IOS 9 下不支持)number-
defaultValue默认项SelectorValue[][]
disabled是否全部禁止选中booleanfalse
fieldNames自定义 options 中 label value disabled 的字段{ label: string, value: string, disabled: string }{ label: 'label', value: 'value',disabled:'disabled' }
multiple是否允许多选booleanfalse
onChange选项改变时触发(value: SelectorValue[], extend: { items: SelectorOption[] }) => void-
options可选项SelectorOption[]-
showCheckMark是否显示对勾角标booleantrue
value选中项SelectorValue[]-

CSS 变量

属性说明默认值
--border边框样式none
--border-radius选项的圆角2px
--checked-border选中时的边框样式none
--checked-color选中时的背景色var(--adm-color-wathet)
--checked-text-color选中时的文字颜色var(--adm-color-primary)
--color背景色#f5f5f5
--padding选项的 padding8px 16px
--text-color文字颜色var(--adm-color-text)
--gap间距大小,仅在 columns 存在时生效8px
--gap-horizontal水平方向的间距大小,仅在 columns 存在时生效var(--gap)
--gap-vertical垂直方向的间距大小,仅在 columns 存在时生效var(--gap)

类型定义

SelectorValue

type SelectorValue = string | number

SelectorOption

属性说明类型默认值
description描述ReactNode-
disabled是否禁用booleanfalse
label文字ReactNode-
value选项的值SelectorValue-

泛型

Selector 支持泛型,你可以通过下面的这种方式手动控制 value onChange 等属性的类型:

<Selector<'a' | 'b' | number>
  options={options}
  defaultValue={['a']}
  onChange={arr => console.log(arr)}
/>