ant design Tree 动态默认选中
时间: 2023-08-02 07:12:18 浏览: 207
Ant Design 的 Tree 组件可以通过 `defaultCheckedKeys` 属性来设置默认选中的节点,但是这个属性只能用于静态渲染的情况下,如果需要动态渲染树并且设置默认选中节点,可以使用 `checkedKeys` 属性和 `onCheck` 事件来实现。
具体实现方法如下:
1. 在组件的 `state` 中定义一个 `checkedKeys` 数组,用于存储当前选中的节点。
```jsx
state = {
checkedKeys: [],
}
```
2. 在组件的 `componentDidMount` 生命周期中,根据需要设置默认选中的节点,并将选中的节点存储到 `checkedKeys` 数组中。
```jsx
componentDidMount() {
// 获取需要默认选中的节点数据,这里假设是从服务端异步获取的
const checkedNodes = [{key: '1-1'}, {key: '2-2'}];
// 将选中的节点的 key 存储到 checkedKeys 数组中
const checkedKeys = checkedNodes.map(node => node.key);
this.setState({ checkedKeys });
}
```
3. 在组件的 `render` 方法中,将 `checkedKeys` 数组、`onCheck` 事件和其他属性一起传递给 `Tree` 组件。
```jsx
render() {
return (
<Tree
checkable
checkedKeys={this.state.checkedKeys}
onCheck={this.handleCheck}
// 其他属性
>
{/* 树节点 */}
</Tree>
);
}
```
4. 在组件中定义 `handleCheck` 方法,用于处理节点选中状态的变化,并将选中的节点的 key 存储到 `checkedKeys` 数组中。
```jsx
handleCheck = (checkedKeys) => {
this.setState({ checkedKeys });
}
```
这样,就可以动态设置默认选中的节点了。
阅读全文