【问题标题】:NextJS - ReferenceError: window is not definedNextJS - ReferenceError:未定义窗口
【发布时间】:2020-09-18 20:19:23
【问题描述】:
import dynamic from 'next/dynamic'
import { convertToRaw } from 'draft-js';
import { Editor } from 'react-draft-wysiwyg';
import draftToMarkdown from 'draftjs-to-markdown';
import ReactMarkdown from 'react-markdown'

当我刷新页面时,发生错误:ReferenceError: window is not defined

我遵循解决方案并更改代码如下:

const { convertToRaw } = dynamic(import('draft-js'),{ssr:false})
const { Editor } = dynamic(import('react-draft-wysiwyg'),{ssr:false})

const draftToMarkdown = dynamic(() => import("draftjs-to-markdown"), {
  ssr: false
});
const ReactMarkdown = dynamic(() => import("react-markdown"), {ssr:false})

但是这次不显示,什么都没有,是空白页 请找到解决办法

【问题讨论】:

    标签: reactjs next.js


    【解决方案1】:

    由于 Next.js 在服务器和客户端上运行,您需要确保您的代码仅在 客户端 中运行时才能访问window 对象。

    肯定有两件事在客户端上运行,事件句柄和useEffect hook / componentDidMount

    把你的window相关代码放在那里。

    【讨论】:

    • 谢谢你的回复,运行window.alert()你能详细解释一下吗?
    • 好的,正如我所解释的,window 对象只存在于浏览器中,因此,您需要确保此代码在useEffectcomponentDidMount 中运行
    猜你喜欢
    • 2021-03-30
    • 2019-10-12
    • 2020-10-08
    • 2018-05-27
    • 2019-10-05
    • 2020-06-25
    • 2020-11-12
    • 2018-10-29
    • 1970-01-01
    相关资源
    最近更新 更多