【发布时间】:2020-11-19 13:30:38
【问题描述】:
我是 React 的新手,我正在尝试使用一个名为 useEffect 的 React Hook 来在 Javascript 中加载一个小脚本。 javascript 代码正在获取完整的当年,我试图在我网站的 FooterBottom 组件中调用它。我正在使用 tailwindcss 来制作这个 React 应用程序的样式。我见过一些使用这种方法的解决方案,例如:Adding script tag to React/JSX 和 How do i use external script that i add to react JS?。
我避免使用 componentDidMount(),因为我想学习如何使用 React Hooks 来使用它。非常感谢任何帮助。
Javascript: fullYear.js
var d = new Date();
var n = d.getFullYear();
document.write(d);
React Hook: useScript.js
import { useEffect } from 'react'
const useScript = function (file) {
useEffect(() => {
const script = document.createElement('script');
script.src = file;
script.type = 'type/javascript';
script.async = true;
script.onload = () => this.scriptLoaded();
document.body.appendChild(script);
}, [file]);
};
export default useScript;
React 组件: FooterBottom.js
import React from 'react'
import useScript from './hooks/useScript.js'
const mystyle = {
visibility: 'visible'
};
const MyComponent = props => {
useScript('../assets/fullYear.js')
}
export default function FooterBottom() {
return (
<div className="footer-bottom">
<div className="container items-center mx-auto ">
<div style={mystyle} className="bg-gray-800 text-center text-white wow zoomIn">
<p>Copyright © {MyComponent()}, All Rights Reserved.</p>
<div className="footer_copyright">
Designed by <a href="https://tailwindcss.com/">tailwindcss.com</a>
</div>
</div>
</div>
</div>
);
}
【问题讨论】:
标签: javascript reactjs components react-hooks jsx