Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | 1x 1x 1x | // @ts-nocheck import React, { useState } from "react"; import { Tree, TreeNode } from "@tencent/tea-component/lib/tree"; function getNode(nodes, id) { for (const node of nodes) { if (node.id === id) { return node; } if (node.children) { const result = getNode(node.children, id); if (result) { return result; } } } return null; } export default function TreeDynamicExample() { const [selectIds, setSelectIds] = useState(); const [data, setData] = useState([ { content: "0-0", id: "0-0", expandable: true }, ]); function onLoad(id) { return new Promise((resolve, reject) => { const node = getNode(data, id); if (node.children) { resolve(); return; } setTimeout(() => { // 模拟失败 if (Math.random() > 0.7) { reject(new Error("Load Error")); return; } Object.assign(node, { children: [ { content: `${node.id}-0`, id: `${node.id}-0`, expandable: true, }, { content: `${node.id}-1`, id: `${node.id}-1`, expandable: true, }, ], }); setData([...data]); resolve(); }, 1000); }); } return ( <Tree selectable data={data} onLoad={onLoad} onLoadError={(id, err) => console.warn(id, err)} selectedIds={selectIds} onSelect={(value, context) => { console.log(value, context); setSelectIds(value); }} /> ); } |