typescript antd Checkbox组件数据为键值对选数据代码
时间: 2024-10-08 16:04:44 浏览: 48
在 TypeScript 中,如果你想使用 Ant Design 的 Checkbox 组件来处理键值对的数据并选中某些数据,你可以这样做:
首先,确保已经安装了 `antd` 和 `@types/react`(如果还没有的话)。然后,可以创建一个状态管理对象,比如一个映射结构,其中的键是数据的键,值是一个布尔值表示是否选中。
```typescript
import React from 'react';
import { Checkbox, FormattedMessage } from 'antd';
interface MyData {
key: string;
name?: string; // 如果你的数据有名字字段
}
const CheckboxExample: React.FC<{ data: MyData[] }> = ({ data }) => {
const [checkedKeys, setCheckedKeys] = React.useState<keyof MyData[]>([]);
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
const { target: { value }, name } = e;
if (name === 'data') {
setCheckedKeys((prev) => {
return prev.includes(value as keyof MyData)
? prev.filter((k) => k !== value)
: [...prev, value];
});
}
};
return (
<div>
{data.map((item, index) => (
<Checkbox
key={index}
checked={checkedKeys.includes(item.key)}
onChange={() => handleChange({ target: { value: item.key, name: 'data' } })}
>
{item.name ?? item.key} {/* 显示名字(如果有),如果没有则显示键 */}
</Checkbox>
))}
</div>
);
};
export default CheckboxExample;
```
在这个例子中,我们使用 `FormatedMessage` 来本地化文本,实际项目中你需要替换为实际的消息字符串。当用户点击某个复选框时,`handleChange` 函数会更新 `checkedKeys` 状态,反映当前选中的数据。
阅读全文