Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DOM不是';组件安装后未及时准备好_Javascript_Reactjs_Dom - Fatal编程技术网

Javascript DOM不是';组件安装后未及时准备好

Javascript DOM不是';组件安装后未及时准备好,javascript,reactjs,dom,Javascript,Reactjs,Dom,我在componentDidMount中调用React中的一个函数,该函数查询DOM,但是DOM没有及时呈现,即使我在componentDidMount之后调用它 奇怪的是,在webpack中,一切都很好,DOM被呈现出来并准备好用于我的querySelectorAll。然而,当它建成时,它不是。我试过多种服务器类型,但都是一样的 我最初的想法是,缩小代码会把它搞得一团糟 我只需要函数运行一次,因此我将其放置在component Dod mount中。如果在任何组件的生命周期中只调用一次comp

我在componentDidMount中调用React中的一个函数,该函数查询DOM,但是DOM没有及时呈现,即使我在componentDidMount之后调用它

奇怪的是,在webpack中,一切都很好,DOM被呈现出来并准备好用于我的querySelectorAll。然而,当它建成时,它不是。我试过多种服务器类型,但都是一样的

我最初的想法是,缩小代码会把它搞得一团糟


我只需要函数运行一次,因此我将其放置在component Dod mount中。如果在任何组件的生命周期中只调用一次component DidMount,render againt将不会重新初始化组件。 您是否尝试过使用
组件diddupdate
。更新组件时会出现此问题。

如中所述,
componentDidMount
在安装所有子组件之后,但在安装任何父组件之前调用


对我来说,使用
setTimeout()
(延迟0毫秒)从
componentDidMount

中延迟代码是有效的。有一些代码给我们看吗?如果您允许,也许我们可以帮助调试:)我不确定我可以添加什么,但我目前正在处理相同的行为-我在componentDidMount上有一个动画滚动,无法正确检索offsetTop元素。如果我将它包装在setTimeout中,即使是1ms,offsetTop的计算也是正确的,所以,实际上,我要说,在componentDidMount中的DOM并没有完成react