Next.js 没有服务器端渲染功能的导入模块
我对Next.js有问题。当我尝试导入节点模块时, 模块使用Next.js 没有服务器端渲染功能的导入模块,next.js,surveyjs,Next.js,Surveyjs,我对Next.js有问题。当我尝试导入节点模块时, 模块使用窗口对象,Next.js抛出错误:窗口未定义 模块的导入方式如下所示: const MyComponent= dynamic( () => import('../components/hello3'), { ssr: false } ) <MyComponent/> import*作为“调查小部件”中的小部件; widgets.autocomplete(调查); 我猜Next.js动态导入在我的情况下不起作用
窗口
对象,Next.js抛出错误:窗口未定义
模块的导入方式如下所示:
const MyComponent= dynamic(
() => import('../components/hello3'),
{ ssr: false }
)
<MyComponent/>
import*作为“调查小部件”中的小部件;
widgets.autocomplete(调查);
我猜Next.js动态导入在我的情况下不起作用。有什么办法吗?尝试推迟使用
窗口的所有代码,或useffect
中限制为浏览器的任何其他api
,因为useffect
中的代码只在浏览器中运行
如果你不能做到这一点,那么制作一个intermediate
模块,用于导入调查小部件
并重新导出你需要的内容。因此,最后,您将动态导入中介
模块
import*作为“调查小部件”中的小部件
导出默认窗口小部件
对于任何想要解决这个问题的人,我都用
我所做的是使用动态导入导入顶级组件,如下所示:
const MyComponent= dynamic(
() => import('../components/hello3'),
{ ssr: false }
)
<MyComponent/>
因此,hello3
组件将不再用于服务器端渲染,而是在客户端渲染
那么就这样使用它:
const MyComponent= dynamic(
() => import('../components/hello3'),
{ ssr: false }
)
<MyComponent/>