我正在使用Antd 的 Tree组件,它占据了我容器的左半部分,并且数据非常大。任何节点的 OnClick,我都会在容器内的右半部分呈现有关该节点的一些细节。因此,我将所有节点加载到一个节点上,并在 onClick 上维护一个状态变量,其中包含所单击节点的详细信息。现在由于数据很大,我认为记住这棵树的功能组件,我可以避免在节点的单击时重新渲染整个树,我可以使用 useMemo() 来实现,但是因为我使用管理节点的选择树的道具“ selectedKeys={props.selkeys} ”,选择不起作用,但我能够实现 onClick 重新渲染不会发生。那是因为 useMemo 如下所示
useMemo(
() => (myTreeComp, [props.data]))
如果将 useMemeo 更改为也包含选定的键,则没有必要进行 memoize,因为它需要重新渲染,因为节点选择已更改:
useMemo(
() => (myTreeComp, [props.data, props.selectedkeys]))
由于这是现有代码,我不确定如何解决这个没有太大变化的问题。
我也对任何其他解决方案持开放态度,例如仅显示少量数据的方式,但请注意所有数据均以某种状态加载。但请提出任何更好的解决方案。
或者
请就如何在此树中使用无限滚动或其他此类组件提出建议。我不能,因为树只能有 TreeNodes。请指教。
TIA