javascript - Nextjs:如何注册 quill-blot-formatter 以仅在客户端渲染上动态导入 react-quill?
问题描述
我react-quill
只使用在客户端动态导入ssr: false
. 我的功能组件工作正常,我想将quill-blot-formatter
包添加到modules
我的羽毛笔组件的一部分。
我的第一个障碍是,我无法注册它quill-blot-formatter
,Quill
因为它显示:
ServerError
ReferenceError: document is not defined
这个页面是客户端渲染的,所以我不明白这个错误来自哪里!
这是我的代码:
import dynamic from "next/dynamic";
import BlotFormatter from "quill-blot-formatter";
const QuillNoSSRWrapper = dynamic(import('react-quill'), {
ssr: false,
loading: () => <p>Loading...</p>,
})
Quill.register("modules/blotFormatter", BlotFormatter);
在这里,我不明白如何Quill
摆脱react-quill
它是动态导入的。因此,我认为这Quill.register
是行不通的。现在,我如何quill-blot-formatter
注册react-quill
?在使用 react-quill 的 Next.js 示例之后,我什至没有ReactQuill
像包中的默认导出那样导入 react-quill。
然后我blotFormatter
像这样声明了模块。
const modules = {
blotFormatter: {}, // here
toolbar: [
[{header: '1'}, {header: '2'}, {font: []}],
[{size: []}],
...
],
}
const formats = ['header','font','size','bold','italic','underline',...]
并在这样的render()
方法中使用:
export default function NewContent() {
...
render(
<QuillNoSSRWrapper
className={styles.quillTextArea}
id="quilleditor"
modules={modules}
formats={formats}
theme="snow"
onChange={handleTextChange}
readOnly={false}
/>
);
}
到目前为止,这个QuillNoSSRWrapper
子组件做得很好,但是,我该如何使用quill-blot-formatter
它formats
呢?
解决方案
推荐阅读
- .net - 我的c#visual studio项目编译时生成的dll文件太多
- android - 如何使用 Mockito 在 Android 中对 LocationListener 进行单元测试
- c++ - 为什么编译器将类函数作为非静态函数处理?
- java - 我创建了一个 testng.xml 文件,其中提到了我的所有类以进行回归测试套件运行,但并非所有类都通过该 xml 运行
- android - 由于切换另一个应用程序,我的应用程序区域设置正在更改
- xcode - 如何在 Xcode 中运行单个 UI 测试
- android - 由 ABI 拆分时的 .APK 名称之间的后缀/前缀/中间
- javascript - 如何检查帖子或属性是否已被查看(在每个会话中)
- javascript - 如何在fancybox的内容下方放置标题/标题?
- android - 如何确保 Android APK 支持 32 位和 64 位?