返回

React + Ant Design 3.x 实战 Cascader 多选功能

前端

Ant Design 3.x:解锁 Cascader 多选功能

手写多选:发挥创造力

要赋予 Cascader 多选功能,最直接的方法是编写自定义代码。通过使用受控组件,你可以定义一个状态数组来保存已选值,并在组件的 onChange 处理程序中更新该数组。最后,在 value 属性中设置该数组,轻松实现值的变化跟踪。

import React, { useState } from 'react';
import { Cascader } from 'antd';

const options = [
  // ...
];

const App = () => {
  const [value, setValue] = useState([]);

  const onChange = (value) => {
    setValue(value);
  };

  return (
    <Cascader options={options} value={value} onChange={onChange} />
  );
};

export default App;

模糊搜索:简化选择

Ant Design 3.x 提供了内置的模糊搜索功能,为多选带来了便捷。启用该功能后,用户可通过输入关键词过滤选项,快速定位所需值。

import React, { useState } from 'react';
import { Cascader } from 'antd';

const options = [
  // ...
];

const App = () => {
  const [value, setValue] = useState([]);

  const onChange = (value) => {
    setValue(value);
  };

  const filter = (inputValue, path) => {
    // ...
  };

  return (
    <Cascader options={options} value={value} onChange={onChange} showSearch filter={filter} />
  );
};

export default App;

正常功能:简化操作

Ant Design 3.x 还提供了其他特性来增强多选体验。changeOnSelect 属性允许你控制是否在选择时触发 onChange 事件,提供更细粒度的控制。

import React, { useState } from 'react';
import { Cascader } from 'antd';

const options = [
  // ...
];

const App = () => {
  const [value, setValue] = useState([]);

  const onChange = (value) => {
    setValue(value);
  };

  return (
    <Cascader options={options} value={value} onChange={onChange} changeOnSelect />
  );
};

export default App;

总结:释放 Cascader 的多选潜力

Ant Design 3.x 的 Cascader 组件通过多种方式支持多选功能,无论是手写代码、模糊搜索,还是正常功能。灵活运用这些技巧,你将能轻松实现符合特定需求的复杂多选 UI。

常见问题解答

  • 如何取消选择已选值? 手动清空 value 数组或使用内置的 clearAll 方法。
  • 如何自定义多选限制? 使用 maxTagCount 或 maxTagPlaceholder 属性设置最大可选项数。
  • 模糊搜索是否支持多重关键词? 是的,你可以通过使用空格分隔多个关键词来启用多重关键词搜索。
  • 能否自定义模糊搜索算法? 是的,自定义 filter 函数可让你根据特定规则优化搜索结果。
  • 如何在 Cascader 中显示已选值的标签? 使用 displayRender 属性自定义标签的呈现方式,例如显示选定值的名称或其他信息。