如何解决所有后代完成渲染后获取引用
我正在处理react-leaflet自定义控件,并且我有一个需要其引用的组件。但是此组件具有动态呈现子级的功能。像这样:
<LayersControl ref={controlRef => this.controlRef = controlRef}>
{this.props.children}
</LayersControl>
孩子们也有自己的孩子。在渲染这些子级时,它们会影响基本的传单逻辑。
(对于不熟悉或好奇的人,LayersControl
将创建一个L.control.layers。LayersControl
的子代将始终是LayersControl.BaseLayer
或LayersConrol.Overlay
然后,这些子节点将具有子节点,这些子节点可以是任意数量的尚不知道的反应叶层或组件。随着.BaseLayer
或.Overlay
组件的安装,它们将修改基础的L.control.layers
对象。)
在所有后代都呈现后,我试图获取对组件的传单实例的引用。但是,如上所述调用ref
函数,不会发生这种情况。尽管我的引用确实在componentDidMount
中定义,但它并不完整。例如,我在cdm
中需要的一些关键属性尚不可用(即._container
属性)。
我知道他的引用是如何工作的-根元素渲染和安装后,即使子代和后代尚未安装,它们也会为您提供引用。
除了没有像做setTimeout
并在10ms
之后获得引用这样的技巧外,一旦所有后代都完成渲染,如何获得该元素的引用?
Working demo of the issue
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。