ant-design/components/tree-select/demo/async.tsx
Jony J 8fb50a6443
feat: retire deprecated api and migrate scope (#52876)
* chore: upgrade RC component dependencies

* chore: trigger CI build

* chore: update deps and import path

* chore: update deps

* test: update snapshot

* test: update snapshot

* fix: lint fix

* chore: migrate Drawer to @rc-component/drawer

* chore: migrate Image to @rc-component/image

* test: update snapshot

* chore: replace api

* fix cascader dropdown api and snap, popupAlign

* fix ci test

* fix key

* test: update snapshot

* Revert "test: update snapshot"

This reverts commit 66a993332b.

* chore: fix logic

* test: update snapshot

* chore: revert part logic

---------

Signed-off-by: Jony J <1844749591@qq.com>
Co-authored-by: thinkasany <480968828@qq.com>
Co-authored-by: 二货机器人 <smith3816@gmail.com>
2025-02-27 21:22:09 +08:00

56 lines
1.5 KiB
TypeScript

import React, { useState } from 'react';
import type { GetProp, TreeSelectProps } from 'antd';
import { TreeSelect } from 'antd';
type DefaultOptionType = GetProp<TreeSelectProps, 'treeData'>[number];
const App: React.FC = () => {
const [value, setValue] = useState<string>();
const [treeData, setTreeData] = useState<Omit<DefaultOptionType, 'label'>[]>([
{ id: 1, pId: 0, value: '1', title: 'Expand to load' },
{ id: 2, pId: 0, value: '2', title: 'Expand to load' },
{ id: 3, pId: 0, value: '3', title: 'Tree Node', isLeaf: true },
]);
const genTreeNode = (parentId: number, isLeaf = false) => {
const random = Math.random().toString(36).substring(2, 6);
return {
id: random,
pId: parentId,
value: random,
title: isLeaf ? 'Tree Node' : 'Expand to load',
isLeaf,
};
};
const onLoadData: TreeSelectProps['loadData'] = ({ id }) =>
new Promise((resolve) => {
setTimeout(() => {
setTreeData(
treeData.concat([genTreeNode(id, false), genTreeNode(id, true), genTreeNode(id, true)]),
);
resolve(undefined);
}, 300);
});
const onChange = (newValue: string) => {
console.log(newValue);
setValue(newValue);
};
return (
<TreeSelect
treeDataSimpleMode
style={{ width: '100%' }}
value={value}
popupStyle={{ maxHeight: 400, overflow: 'auto' }}
placeholder="Please select"
onChange={onChange}
loadData={onLoadData}
treeData={treeData}
/>
);
};
export default App;