问题描述
我怎样才能让这段代码在 React/Gatsby 中工作。当我去构建它失败
window.addEventListener("mousemove",move);
window.onload = () =>animejs({ 目标:“.cursor”, 不透明度:1 });
解决方法
将其包裹在此条件中:
if (typeof window !== "undefined"){
window.addEventListener("mousemove",move);
window.onload = () => animejs({ targets: ".cursor",opacity: 1 });
}
你需要了解 Gatsby 才能知道发生了什么。总而言之,gatsby develop
出现在浏览器端,其中有一个 window
(or other global objects like document
),因此您的代码不会中断。 gatsby build
出现在显然没有 window
的服务器中(因为它甚至还没有定义),所以在没有验证的情况下使用 window
的每一部分代码都会中断。
将代码包装在前一个条件中将使您的代码正常工作。