[Editor] String 형태의 HTML 렌더링 하기
본문 바로가기
더 알아보기/기능

[Editor] String 형태의 HTML 렌더링 하기

by 은돌1113 2022. 3. 23.
 

[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>

 

아래처럼 잘 반영 되는 걸 볼 수 있었다.

 

'더 알아보기 > 기능' 카테고리의 다른 글

[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

댓글