Emi*_*ano 17 reactjs hydration next.js react-player
你好你好吗?我试图react-player在我的 Next.js 应用程序中使用,但没有任何运气。
这段代码
import ReactPlayer from "react-player";
const Home = () => {
return (
<div>
<p>Here is my video!!</p>
<div className={s.wrapper}>
<ReactPlayer src='https://www.youtube.com/watch?v=zohpogt56Bg' width="100%"
height="100%" className={s.player} />
</div>
</div>
)}
Run Code Online (Sandbox Code Playgroud)
不断抛出此错误:错误:水合失败,因为初始 UI 与服务器上呈现的内容不匹配。
有人知道发生了什么事吗?谢谢!
c-c*_*t-p 40
您可以更改导入以利用 Next 的动态导入。如果您仅使用静态站点生成,那么此选项应该适合您。然而,这看起来确实像是一个创可贴修复,因为我不认为它解决了根本问题。
import dynamic from 'next/dynamic'
const ReactPlayer = dynamic(() => import("react-player"), { ssr: false });
Run Code Online (Sandbox Code Playgroud)
小智 18
你试过这个吗?
它基本上是检查窗口。
import ReactPlayer from "react-player";
const Home = () => {
const [hasWindow, setHasWindow] = useState(false);
useEffect(() => {
if (typeof window !== "undefined") {
setHasWindow(true);
}
}, []);
return (
<div>
<p>Here is my video!!</p>
<div className={s.wrapper}>
{
hasWindow && <ReactPlayer src='https://www.youtube.com/watch?v=zohpogt56Bg'
width="100%"
height="100%" className={s.player} />
}
</div>
</div>
)}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9822 次 |
| 最近记录: |