![[ react ] dangerouslySetInnerHTML](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcQocm1%2FbtsHbggQEBD%2FAAAAAAAAAAAAAAAAAAAAANLYtAt7yM0uxIcTsObYHJIA1pLMceEIIjeuDNNdz1gO%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DVS851D%252BSG0Hq5Oql4AV3cYZiXpE%253D)
[ react ] dangerouslySetInnerHTMLFrontend/react2023. 7. 21. 08:56
      Table of Contents
        반응형
    
    
    
  블로그를 만들던 중에 , hygraph 에서 내가만든 컨텐츠 내용을 가져오는 부분이 있었는데 , hygraph에서 제공해주는 api를 통해서 content 내역을 string 가져와 그대로 뿌려주다 보니 , string 으로 된 html을 우리가 알고있는 html 형태로 바꿔줘야 하는 문제가 생겼다.
그러다가 알게된 dangerouslySetInnerHTML .. ! 어마어마한 녀석을 알게되었다.
dangerouslySetInnerHTML 은 무엇인가 ?
-> 브라우저 DOM에서 innerHTML을 사용하기 위한 React의 대체 방법
사용방법
function createMarkup() {
  return {__html: 'First · Second'};
}
적용예제
export default function BlogPost({post}){
  return (
    <main className={styles.blogContainer}>
        <div className={styles.inner_blogContainer}>
          {/* <img src={post.coverPhoto.url} className={styles.cover} alt="" /> */}
          
          
          <div className={styles.mainTitleArea}>
            <h1 className={styles.mainTitle}>{post.title}</h1>
          </div>
          <div className={styles.content} dangerouslySetInnerHTML={ {__html:post.content.html}}></div>
        </div>
        <div className={styles.authorArea}>
            <img className={styles.avatarImg}   src = {post.author.avatar.url} alt="" />
            <div className={styles.authtext}>
              <h6> By {post.author.name}</h6>
              <h6 className={styles.date}>{post.dataPublished}</h6>
            </div>
        </div>
    </main>
  )
}반응형
    
    
    
  'Frontend > react' 카테고리의 다른 글
| [ react ] documentation useState ( 18.2.0 ) (1) | 2024.09.10 | 
|---|---|
| [ react ] documentation hooks ( 18.2.0 ) (0) | 2024.09.10 | 
| [ react ] Warning: Each child in a list should have a unique “key” prop. (0) | 2023.10.12 | 
| [ react ] Context (0) | 2023.10.11 | 
| [ react ] 부모 컴포넌트와 자식 컴포넌트 데이터 전달 (0) | 2023.07.25 | 
@IT grow. :: IT grow.
            #IT #먹방 #전자기기 #일상
#개발 #일상
![[ react ] documentation hooks ( 18.2.0 )](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FddtmZU%2FbtsJwPg1v0m%2FAAAAAAAAAAAAAAAAAAAAAPpibzyCa4_Eic1SquBaB0tZuRCy-HCUu2MLLIwJqTLU%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DGhwqRK2n%252FEESeRVOHxpke9x0kcw%253D) 
                  ![[ react ] Warning: Each child in a list should have a unique “key” prop.](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fba86Ic%2FbtsHb9usNAZ%2FAAAAAAAAAAAAAAAAAAAAAHfk4hPkkoROqhgbi7epW5_NIsLx8RrtR4SAeT6H2G_4%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DkFcW8IsIYtZpYbi%252ByyZIGh1RvjM%253D) 
                  ![[ react ] Context](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Feoi6Dc%2FbtsHcmmOYg6%2FAAAAAAAAAAAAAAAAAAAAAPxxAx0JjAj9XwY6X4NBYqs_p5r5tE1jhpv9QMfMDizV%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3Dd%252B%252B%252FuBSl68XlAy%252FfNWZWaLirLk4%253D) 
                  ![[ react ] 부모 컴포넌트와 자식 컴포넌트 데이터 전달](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcGeIyw%2FbtsHdcKNjso%2FAAAAAAAAAAAAAAAAAAAAADNDiws8yFLt7JqvDj1nXVP0IJW2EoyS3hRQN_4jmETJ%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DC%252BGMeRefnbDqu0f4PA%252FsOHm6Rwk%253D)