en-US
When dCreateItem is set, the creation behavior is determined by the return value.
zh-CN
当设置了 dCreateItem,由返回值决定创建行为。
import { useState, useCallback } from 'react';
import { DSelect } from '@react-devui/ui';
export default function Demo() {
const [list, setList] = useState(() =>
Array.from({ length: 100 }).map((_, index) => ({
label: `Item ${index}`,
value: index,
disabled: index === 3,
}))
);
const handleCreateItem = (item) => {
setList((prevList) => [item, ...prevList]);
};
const createFn = useCallback(
(value) => {
if (/^[0-9]+$/.test(value) && Number(value) > list.length) {
return {
label: `Item ${value}`,
value: Number(value),
};
}
},
[list.length]
);
return (
<>
<DSelect
style={{ width: 200 }}
dList={list}
dPlaceholder="Create"
dSearchable
dCreateItem={createFn}
onCreateItem={handleCreateItem}
/>
<DSelect
style={{ width: 400 }}
dList={list}
dPlaceholder="Create in multiple mode"
dSearchable
dCreateItem={createFn}
onCreateItem={handleCreateItem}
dMultiple
/>
</>
);
}