에디터 라이브러리 중에 가장 많이 쓰이는 React Draft Wysiwyg
를 사용중 dropdown
이 나오지 않는 에러를 발견했다.
this.state
directly or define a state = {};
class property with the desired state in the r component.import { Editor } from "react-draft-wysiwyg";
// import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import "../../node_modules/react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import { EditorState, convertToRaw } from "draft-js";
import { useState } from "react";
import draftToHtml from "draftjs-to-html";
최초에는 react-draft-wysiwyg
의 기본 css를 잘못 불러들었나 싶어 공식문서의 import방식으로 직접 파일을 찾아 들어가 보았다. 하지만 import문제는 아닌것으로 생각되는 이유가
react-draft-wysiwyg.css
가 import 되었기 때문에 기본 Ui가 잡혔다.이렇게 생각이 들었다.
다음으로는 toolbar의 옵션을 수정해보는 것이었는데 역시나 dropdown은 동작하지 않았다.
toolbar={{
options: ["fontFamily", "fontSize", "inline", "list", "textAlign", "colorPicker", "link", "embedded", "emoji", "remove", "history"],
fontFamily: {
inDropdown: false,
options: ["Arial", "Georgia", "Impact", "Tahoma", "Times New Roman", "Verdana"],
},
fontSize: {
inDropdown: true,
options: [10, 14, 18, 24, 30, 36, 48, 60, 72, 96],
},
inDropdown의 옵션을 비교를 위해 2개를 다르게 넣어봤지만 역시나 동작을 하지 않았다.
현재 프로젝트의 index.tsx
에 있는 <React.StrictMode>
컴포넌트를 삭제 해서 개발단계가 끝났을때 어떻게 나올것인지 확인 해본다.
import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import App from "./App";
import { BrowserRouter } from "react-router-dom";
const rootElement = document.getElementById("root");
if (rootElement) {
ReactDOM.createRoot(rootElement).render(
// <React.StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
// </React.StrictMode>
);
}
하지만 <React.StrictMode>
컴포넌트를 사용하지 않는다는것은 아래와 같은 장점을 사용하지 않는다는 것이기 때문에 사용에 유의해야 한다.
참고 링크 : https://stackoverflow.com/questions/70276271/react-draft-wysiwyg-dropdown-options-not-working