UNPKG

723 BJavaScriptView Raw
1import React, { useState } from "react";
2import { Tree } from "antd";
3/**
4 * 树组件(单选)
5 * @param {Function} onCheck - {key, node}
6 */
7export default function TreeRadio({ onCheck, ...rest }) {
8 const [keys, setkeys] = useState([]);
9
10 const _onCheck = (checkedKeys, e) => {
11 if (checkedKeys.checked.length === 0) {
12 setkeys([]);
13 onCheck({ keys: [], node: {} });
14 return;
15 }
16 const last = checkedKeys.checked.pop();
17 setkeys([last]);
18 onCheck({ keys: [last], node: e.node });
19 };
20
21 return (
22 <Tree
23 style={{ width: "100%" }}
24 checkedKeys={keys}
25 checkable
26 checkStrictly
27 defaultExpandAll={true}
28 onCheck={_onCheck}
29 {...rest}
30 />
31 );
32}