gpt4 book ai didi

javascript - 为什么 JavaScrips 仅在加载页面后才起作用?

转载 作者:行者123 更新时间:2023-11-28 03:40:44 25 4
gpt4 key购买 nike

我有一个 React 应用程序并尝试通过 jQuery 初始化 Materialize js。

index.html

<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>

<script type="text/javascript" src="/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="/materialize.min.js"></script>

<script>
$(document).ready(function() {
$(".tabs").tabs();
});
</script>
</body>

问题: 因此,React 呈现“UserProfile”组件,其中包含具体化的“选项卡”。如果我转到 UserProfile 路线,则 javaScript 可以工作,但如果我转到另一个页面并返回到 UserProfile,则 javaScript 不起作用。或者,如果我从另一个页面开始并转到 UserProfile,结果相同,选项卡不起作用。

我检查了 html“Elements”,它那里有那些脚本,它们没有消失(它们实际上应该消失,但以防万一)。

P.S. 我是 React 新手,所以也许这段代码从根本上来说是错误的,我知道在主 html 下添加脚本并不是一个好主意,但即便如此,我认为它应该在至少。或者我是否需要以某种方式将我的脚本添加到组件中?任何帮助都会有所帮助。

最佳答案

JQuery 与 React 无关,$(document).ready 将确保回调在 html 文档完全加载后执行,但不能保证它会等待 react。 render 完成执行,这意味着您的回调在 React 将组件添加到 DOM 之前运行,并且没有找到任何 .tabs

也许您想使用 componentDidMount() 做任何您想做的事情? React 文档:https://reactjs.org/docs/react-component.html#componentdidmount

关于javascript - 为什么 JavaScrips 仅在加载页面后才起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57320517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com