此错误表明,当运行第二个脚本时,窗口。GC对象尚未定义。我假设它是由第一个脚本创建的,所以理想情况下,您希望第二个脚本只有在加载并运行第一个脚本之后才运行。
您可以使用NextJs脚本组件中的onLoad函数来执行此操作,因此您只使用第一个脚本,并在加载后执行第二部分,如下所示:
<Script
src="https://widgets.gc.com/static/js/sdk.v1.js"
onLoad={() => {
window.GC.scoreboard.init({
target: "#gc-scoreboard-widget-umpl",
widgetId: "UUID HERE",
maxVerticalGamesVisible: 4,
});
}}
/>
你可以尝试的另一件事是在你的组件上添加一个useEffect钩子,它只在保证窗口后才执行初始化操作。GC对象存在,如下所示:
useEffect(() => {
if (window.GC && window.GC.scoreboard) {
window.GC.scoreboard.init({
target: "#gc-scoreboard-widget-umpl",
widgetId: "UUID HERE",
maxVerticalGamesVisible: 4,
});
}
}, []);