UNPKG

cjd-parkball

Version:

> 中后台业务组件库,中后台就像公园,进入需要买门票(登录),所以以 Parkball(公园球) 命名,公园内必定捕获!作为一个组件库,提供使用方法文档,方便开发者的调用

72 lines (60 loc) 1.53 kB
--- category: 2 title: 异步数据加载 title_en: load data asynchronously --- zh-CN 点击展开节点,动态加载数据。 en-US To load data asynchronously when click to expand a treeNode. ````jsx import { Tree } from 'parkball'; const TreeNode = Tree.TreeNode; class Demo extends React.Component { state = { treeData: [ { title: 'Expand to load', key: '0' }, { title: 'Expand to load', key: '1' }, { title: 'Tree Node', key: '2', isLeaf: true }, ], } onLoadData = (treeNode) => { return new Promise((resolve) => { if (treeNode.props.children) { resolve(); return; } setTimeout(() => { treeNode.props.dataRef.children = [ { title: 'Child Node', key: `${treeNode.props.eventKey}-0` }, { title: 'Child Node', key: `${treeNode.props.eventKey}-1` }, ]; this.setState({ treeData: [...this.state.treeData], }); resolve(); }, 1000); }); } renderTreeNodes = (data) => { return data.map((item) => { if (item.children) { return ( <TreeNode title={item.title} key={item.key} dataRef={item}> {this.renderTreeNodes(item.children)} </TreeNode> ); } return <TreeNode {...item} dataRef={item} />; }); } render() { return ( <Tree loadData={this.onLoadData}> {this.renderTreeNodes(this.state.treeData)} </Tree> ); } } ReactDOM.render(<Demo />, mountNode); ````