请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

如果在父组件监听到所有子组件的dom都挂载完成

双越老师你好,我最近在做蚂蚁的项目的时候,遇到这样一个需求,我从一个路由跳转到另外一个路由携带hash值,这个hash值是用于定位锚点使用,但是最后发现每次跳转到这个路由的时候,由于挂载时机的问题,导致锚点定位会失效,最后我在父组件尝试了useEffech和useLayoutEffect都没用,只能加定时器才行,最后我实在没办法了,只能在某个子组件内部加入useEffect(() => {}, [])去判断该子组件加载完成后给父组件一个回调去控制进行dom相关的操作,具体代码如下图片描述
不知道有没有更加通用的解决方式

正在回答 回答被采纳积分+3

1回答

双越 2023-03-06 08:07:40

React 页面都是异步渲染的,你路由跳转过来时,页面 DOM 尚未渲染呢,此时就无法定位锚点。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕先生7327580 #1
    老师,有没有什么方式能让我知道这个路由组件里面所有子组件包括他自己的dom全部加载完成了呢,比如像domContentLoaded?
    回复 有任何疑惑可以回复我~ 2023-03-06 10:31:29
  • 双越 回复 提问者 慕先生7327580 #2
    DOM 挂载完了,但此时再去处理锚点,就得用JS操作了,没法用原生方式
    回复 有任何疑惑可以回复我~ 2023-03-06 10:51:41
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信