quill-blot-formatter
登録した関数コンポーネントを作成し、モジュール リストにreact-quill
追加しました。blotFormatter
次に、このモジュールnext/dynamic
を必要なページにインポートしました。
カスタム関数:
import ReactQuill, { Quill } from 'react-quill';
import { BlotFormatter } from 'quill-blot-formatter';
import 'react-quill/dist/quill.snow.css'
Quill.register("modules/blotFormatter", BlotFormatter);
const modules = {
blotFormatter: {
overlay: {
style: { border: '2px solid red',}
}},
toolbar: [...],
}
const formats = [...];
ReactQuill
次のようにデフォルトのエクスポートを呼び出していますreact-quill
。
export default function QuillCustom({onChange}) {
return (
<ReactQuill
modules={modules}
formats={formats}
theme="snow"
onChange={onchange}
readOnly={false}
/>
);
}
Nextjs ページ コンポーネントでは、次のように呼び出しています。
const QuillNoSSRWrapper = dynamic(() => import('../Components/quillComponent'), {
ssr: false,
loading: () => <p>Loading...</p>,
})
return (
<div>
<QuillNoSSRWrapper
className={styles.quillTextArea}
onChange={handleTextChange}
/>
</div>
)
ここでの問題は、ページが読み込まれた後、loading...
宣言された in の prop がconst QuillNoSSRWrapper
画面に表示され、そこに永久に残ることです。クイル エディタは表示されません。
この行にコメントを付けてみQuill.register("modules/blotFormatter", BlotFormatter);
ました: カスタム モジュールで、クイル エディターが表示されました。モジュールがblotFormatter
Quill に登録されていませんか? じゃあどうやって登録するの?