
本文旨在解决 React 应用中嵌入包含 <script> 标签的 HTML 代码片段时无法正常显示的问题。通常情况下,直接在 React 组件中使用 innerHTML 插入脚本会导致脚本无法执行。本文将介绍使用 useEffect Hook 安全有效地在 React 应用中嵌入外部脚本的方法,并提供示例代码和注意事项,确保嵌入的 HTML 代码片段能够正确渲染。
在 React 应用中,直接使用 innerHTML 添加包含 <script> 标签的 HTML 代码片段,脚本通常不会执行。这是因为 React 使用虚拟 DOM,并且通过 innerHTML 插入的脚本会被浏览器阻止执行,以防止潜在的安全问题。
为了解决这个问题,可以使用 useEffect Hook 来动态加载外部脚本。useEffect 允许你在组件挂载后执行副作用操作,例如加载外部资源。
示例代码:
立即学习“前端免费学习笔记(深入)”;
import React, { useEffect } from 'react';
const Donation = () => {
useEffect(() => {
const script = document.createElement('script');
script.src = "https://www.gofundme.com/static/js/embed.js";
script.async = true;
document.body.appendChild(script);
// 组件卸载时移除脚本,避免内存泄漏
return () => {
document.body.removeChild(script);
};
}, []);
return (
<div>
<div className="gfm-embed" data-url="https://www.gofundme.com/f/theyre-the-real-victims/widget/large/"></div>
</div>
);
};
export default Donation;代码解释:
注意事项:
总结:
通过使用 useEffect Hook,可以安全有效地在 React 应用中嵌入外部脚本,从而实现更复杂的功能和集成。记住要清理副作用,并注意脚本的来源和潜在的安全问题。这种方法避免了直接使用 innerHTML 带来的问题,并提供了更灵活和可控的脚本加载方式。
以上就是React 中嵌入 HTML 代码片段无法显示的问题解决方案的详细内容,更多请关注php中文网其它相关文章!
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号