Javascript DOM不是';组件安装后未及时准备好
我在componentDidMount中调用React中的一个函数,该函数查询DOM,但是DOM没有及时呈现,即使我在componentDidMount之后调用它 奇怪的是,在webpack中,一切都很好,DOM被呈现出来并准备好用于我的querySelectorAll。然而,当它建成时,它不是。我试过多种服务器类型,但都是一样的 我最初的想法是,缩小代码会把它搞得一团糟Javascript DOM不是';组件安装后未及时准备好,javascript,reactjs,dom,Javascript,Reactjs,Dom,我在componentDidMount中调用React中的一个函数,该函数查询DOM,但是DOM没有及时呈现,即使我在componentDidMount之后调用它 奇怪的是,在webpack中,一切都很好,DOM被呈现出来并准备好用于我的querySelectorAll。然而,当它建成时,它不是。我试过多种服务器类型,但都是一样的 我最初的想法是,缩小代码会把它搞得一团糟 我只需要函数运行一次,因此我将其放置在component Dod mount中。如果在任何组件的生命周期中只调用一次comp
我只需要函数运行一次,因此我将其放置在component Dod mount中。如果在任何组件的生命周期中只调用一次component DidMount,render againt将不会重新初始化组件。 您是否尝试过使用
组件diddupdate
。更新组件时会出现此问题。如中所述,componentDidMount
在安装所有子组件之后,但在安装任何父组件之前调用
对我来说,使用
setTimeout()
(延迟0毫秒)从componentDidMount
中延迟代码是有效的。有一些代码给我们看吗?如果您允许,也许我们可以帮助调试:)我不确定我可以添加什么,但我目前正在处理相同的行为-我在componentDidMount上有一个动画滚动,无法正确检索offsetTop元素。如果我将它包装在setTimeout中,即使是1ms,offsetTop的计算也是正确的,所以,实际上,我要说,在componentDidMount中的DOM并没有完成react