React 子组件获取父组件dom元素

正在做一个列表组件,可以支持下拉加载和上拉刷新,滚动容器(overflow:scroll/auto且定高的容器)是通过props传入的。

问题

react生命周期是 父willMount -> 子willMount -> 子DidMount -> 父DidMount,在子组件中DidMount时要给滚动容器绑定scroll事件,但是此时父组件还没有DidMount,请问除了绑在body或者window上,我还有什么办法获得父组件的dom节点呢

阅读 11.9k
3 个回答
新手上路,请多包涵

你可以把需要的操作卸载父组件的一个函数里面把函数当做props传给子组件,然后子组件mounted调用这个props函数就行了,想干啥就干啥

新手上路,请多包涵

可以在父组件didMount后,通过setState,或者useState,将父组件的dom节点放置在父组件的state上,然后通过props传递给子组件,触发子组件的render,这样子组件就可以在父组件didMount后,获取到父组件的dom

新手上路,请多包涵

可以在子组件的DidMount里使用异步获取的方式,要么本次事件循环末尾获取,要么下一次事件循环开始获取:
image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题