element-react
element-react copied to clipboard
组件更新state任意内容后,Tree 节点选中渲染被清空
Description
当执行 getCheckedServer 后,原本选中的节点会被清空,重新选择节点也会出现选a 结果为选 b 的情况。

getCheckedServer(){
this.setState({
test:this.tree.getCheckedKeys(true)
})
}
render() {
const { data, options } = this.state;
return (
<div>
<Tree
ref={e=>this.tree = e}
data={data}
options={options}
isShowCheckbox={true}
nodeKey="id"
defaultExpandAll={true}
expandOnClickNode={false}
renderContent={(...args)=>this.renderContent(...args)}
/>
<button onClick={this.getCheckedServer.bind(this)}>查看</button>
</div>
)
}
照理来说哪些节点被选中是 Tree 组件内部的 state 进行管理的,修改父组件的 state 只要没有涉及到传入 Tree 的数据,Tree 是不应该被重新渲染才对的啊。
同样的情况也出现在路由跳转。 /a 路由下 为 Tree 视图,当从 /a 跳转至 /b,然后又回到 /a, 正确的情况是 /a 视图重新渲染,且功能正常,但实际情况是 视图重新渲染了,但是功能不正常了,不能正确的点击节点选择,同时存在 选择 a 无效,需要选择多次才生效;选择 a 但视图渲染 选中了b节点的情况。
遇到了同样的情况 请问是怎么解决的呀?