Open h-yabi2 opened 4 months ago
ReactQuill
onChange
html to delta
satete
<ReactQuill ref={quillRef} modules={modules} readOnly={true} theme="snow" onChange={handleOnChange} />
const deltaData = { ops: [ { insert: "Hello " }, { insert: "World!", attributes: { bold: true } }, { insert: "\n" }, ], }; const [data, setData] = useState(deltaData); ~ const handleOnChange = (content: string) => { console.log(content); // html to delta const delta = quillRef.current?.editor?.clipboard.convert(content); console.log(delta); // setData データ時に { insert: "\n" } を末尾に追加 // if (delta && delta.ops) { // const lastData = delta.ops[delta.ops.length - 1] ?? { insert: "" }; // if (lastData.insert !== "\n") { // delta.ops.push({ insert: "\n" }); // } // } // TODO: 型エラーが出るので、修正が必要 setData(delta as any); };
ReactQuill
にonChange
を設定し、入力されたデータを受け取りhtml to delta
に変換、satete
に格納するなど