--- 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); ````