강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

웹개발자님의 프로필 이미지
웹개발자

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

댓글 구현하기

css custom

해결된 질문

작성

·

171

0

안녕하세요 제로초님 css 관련 궁금한 점이 있어서 질문남깁니다!

아래와 같은 코드에서 리액트가 상태를 파악해서 다시 그려주는데 만약 open상태에서 그 어떤 글자를 클릭했을 때 색을 변하게 하고 싶어서 함수로 직접 dom에접근해 style을 변경시켰는데 다시 닫았다가 다시 open일 때 태그에 넣어놨던 style이 사라지는 경우 가 있습니다. 클래스도 마찬가지구요. 그러할 경우에는 기존 아래와 같은 방식으로는 해결할 수 없나요?

퀴즈

61%나 틀려요. 한번 도전해보세요!

리덕스의 주요 목적은 무엇인가요?

React 컴포넌트 라이프사이클 관리

서버와의 비동기 통신 최적화

애플리케이션 상태 중앙 집중 관리

UI 렌더링 성능 향상

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

리액트에서는 진짜 특수한 경우를 제외하고 직접 DOM에 접근하시면 안 됩니다. 리렌더링될 때 DOM에 직접 변경했던 내용이 전부 초기화됩니다. item.content같은 데이터를 수정하셔야 합니다. content에는 리액트 컴포넌트를 넣을 수 있습니다. 글자를 클릭할 때 그 글자의 색이 바뀌는 컴포넌트를 item.content 데이터와 함께 넣으시면 됩니다.

content={<ChangeColorComment data={item.content} />}

웹개발자님의 프로필 이미지
웹개발자

작성한 질문수

질문하기