--- order: 1 title: zh-CN: 受控操作示例 en-US: basic controlled example --- ## zh-CN 受控操作示例 ## en-US basic controlled example ````jsx import { Tree } from 'antd'; const TreeNode = Tree.TreeNode; const treeData = [{ "title": "0-0", "key": "0-0", "children": [{ "title": "0-0-0", "key": "0-0-0", "children": [ { "title": "0-0-0-0", "key": "0-0-0-0" }, { "title": "0-0-0-1", "key": "0-0-0-1" }, { "title": "0-0-0-2", "key": "0-0-0-2" }, ], }, { "title": "0-0-1", "key": "0-0-1", "children": [ { "title": "0-0-1-0", "key": "0-0-1-0" }, { "title": "0-0-1-1", "key": "0-0-1-1" }, { "title": "0-0-1-2", "key": "0-0-1-2" }, ], }, { "title": "0-0-2", "key": "0-0-2", }], }, { "title": "0-1", "key": "0-1", "children": [ { "title": "0-1-0-0", "key": "0-1-0-0" }, { "title": "0-1-0-1", "key": "0-1-0-1" }, { "title": "0-1-0-2", "key": "0-1-0-2" }, ], }, { "title": "0-2", "key": "0-2", }]; class Demo extends React.Component { state = { expandedKeys: ['0-0-0', '0-0-1'], autoExpandParent: true, checkedKeys: ['0-0-0'], selectedKeys: [], } onExpand = (expandedKeys) => { console.log('onExpand', arguments); // if not set autoExpandParent to false, if children expanded, parent can not collapse. // or, you can remove all expanded children keys. this.setState({ expandedKeys, autoExpandParent: false, }); } onCheck = (checkedKeys) => { console.log('onCheck', checkedKeys); this.setState({ checkedKeys }); } onSelect = (selectedKeys, info) => { console.log('onSelect', info); this.setState({ selectedKeys }); } renderTreeNodes = (data) => { return data.map((item) => { if (item.children) { return ( {this.renderTreeNodes(item.children)} ); } return ; }); } render() { return ( {this.renderTreeNodes(treeData)} ); } } ReactDOM.render(, mountNode); ````