You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

69 lines
1.8 KiB

9 years ago
# 接收外部传参
- order: 2
受控组件,外部传入参数,控制树对象节点
---
````jsx
import { Tree, Button } from 'antd';
const TreeNode = Tree.TreeNode;
9 years ago
class TreeDemo extends React.Component {
constructor(props) {
super(props);
['handleClick', 'handleCheck', 'handleSelect'].forEach((m)=> {
this[m] = this[m].bind(this);
});
this.state = {
checkedKeys: [],
selectedKeys: []
}
}
handleClick() {
this.setState({
checkedKeys: ['p11'],
selectedKeys: ['p21', 'p11']
})
}
handleCheck(info) {
console.log('check: ', info);
this.setState({
checkedKeys: ['p21'],
selectedKeys: ['p1', 'p21']
})
}
handleSelect(info) {
console.log('selected: ', info);
this.setState({
checkedKeys: ['p21'],
selectedKeys: ['p21']
})
}
render() {
return (<div>
<Tree defaultExpandAll={true} checkable={true}
onCheck={this.handleCheck} checkedKeys={this.state.checkedKeys}
onSelect={this.handleSelect} selectedKeys={this.state.selectedKeys} multiple>
<TreeNode title="parent 1" key="p1">
<TreeNode key="p10" title="leaf"/>
<TreeNode title="parent 1-1" key="p11">
<TreeNode title="parent 2-1" key="p21">
<TreeNode>test</TreeNode>
<TreeNode title={<span>sss</span>}/>
</TreeNode>
<TreeNode key="p22" title="leaf"/>
</TreeNode>
</TreeNode>
<TreeNode key="p12" title="leaf"/>
</Tree>
<Button type="primary" size="small" onClick={this.handleClick}>点此控制树节点</Button>
9 years ago
</div>);
}
}
9 years ago
ReactDOM.render(<TreeDemo />, document.getElementById('components-tree-demo-special'));
9 years ago
````