728x90
[Editor] Quill 에디터 적용하기
[React] Next.js에서 Quill 에디터 사용하기 이 글에는 Next.js에서 react-quill의 사용 없이 Quill 에디터를 사용하기 위한 코드를 제공합니다. 코드의 부족한 점과 문의 사항은 댓글 주시면 답변 및 수정하
eundol1113.tistory.com
위 게시물에서 진행한 것처럼 Quill 에디어를 적용한 뒤 고민에 빠졌다.
에디터를 통하여 String 형태로 코드가 바뀌었는 데 그걸 어떻게 HTML 코드로 변환 할 지 도통 감이 잡히지 않다가
아래 블로그를 찾았다.
[React.js] Tip: string 형태의 html을 렌더링하기, newline(\n) 을 BR 태그로 변환하기 | VELOPERT.LOG
React 매뉴얼의 “Dangerously Set innerHTML” 페이지에 따르면, React에서는 cross-site scripting (XSS) 공격을 막기 위하여, 렌더링 메소드 내부에서 html 태그가 담겨있는 string 형태를 렌더링하면, 태그가 안
velopert.com
아래 코드를 사용하면 되는 데 __html에 있는 body는 에디터 내용을 담고 있는 state로 대체 시키면 된다.
{/* string 형태의 html을 렌더링 하는 방법 */}
<div dangerouslySetInnerHTML={{ __html: body }} />
F12 > 요소를 한참을 들여다 본 것 같다. 왜 스타일이 안먹히는 거지 싶었다.
원인은 에디터를 감싸고 있는 className이 HTML로 변환한 값을 담는 div에는 없었기 때문이었다.
그래서 아래처럼 바꿔 주었다.
<div
className="ql-container ql-snow"
style={{
// border: "none",
background: "#ffffff",
width: "50%",
}}
>
{/* String 형태의 HTML 렌더링 하는 부분 */}
<div
className="ql-editor"
dangerouslySetInnerHTML={{ __html: body }}
/>
</div>
아래처럼 잘 반영 되는 걸 볼 수 있었다.
728x90
'더 알아보기 > 기능' 카테고리의 다른 글
[React] 다음 주소 API 적용하기 (0) | 2022.03.28 |
---|---|
[Next.js] 이미지 미리보기 (0) | 2022.03.24 |
[Editor] Quill 에디터 적용하기 (0) | 2022.03.23 |
Zustand 사용하기 (0) | 2022.03.21 |
[Recoil] 공식문서로 공부하기 (0) | 2022.03.17 |
댓글