강의

멘토링

로드맵

Inflearn brand logo image

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

rkdtjdtls91님의 프로필 이미지
rkdtjdtls91

작성한 질문수

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

props 데이터 전달

해결된 질문

작성

·

39

·

수정됨

0

 

1.PNG.webp

props 데이터 전달이 이해가 안되는데요

버튼에 텍스트를 추가한건 없는거같고 컬러만 RED로 추가한거같은데

왜 메일 버튼에만 RED라는 텍스트가 나오는걸까요?

 

3.PNG.webp

 

컬러를 레드로 했으면 빨간색으로 바껴야되는데 문자만 red로 바뀌고 색은 바뀌지 않은 문제를

문의드립니다.

 

2.PNG.webp

 

그리고 서버를 껏다 켯고 코드를 바꿧는데도 메일 버튼이 빨간색으로 바뀌지 않습니다ㅠㅠ

 

답변 2

0

이정환 Winterlood님의 프로필 이미지
이정환 Winterlood
지식공유자

안녕하세요 이정환입니다.

우선 "왜 메일 버튼에만 RED 텍스트가 나타날까요?" 라는 질문에 대한 답변부터 드릴게요

첫번째 버튼에 전달되는 Props는 가장 아래 첨부해주신 그림을 기준으로 "text(메일), color(red), a(1), b(2), c(3)"입니다.

Button 컴포넌트는 이렇게 전달된 Props들 중 text Props와 color Props를 사용해 다음과 같이 컴포넌트를 렌더링 합니다.

  • <button> 태그를 렌더링 함

  • <button>의 텍스트는 "{text}-{color.toUpperCase()}"임

     

이때 첫번째 버튼에 전달된 text Props의 값은 "메일" color Props의 값은 "red"이므로 결국 위 조건들로 인해 <button>의 최종 텍스트는 "메일-RED"로 설정됩니다.

 

두번째 질문에 대한 답변은 이전에 동일한 질문을 주셨을때와 마찬가지로 전체 프로젝트의 코드를 제가 확인해봐야 원인을 파악할 수 있을 것 같습니다. 구글 드라이브에 업로드 하신 다음 공유 링크를 답글로 남겨주세요 또는 깃허브 링크로 전달주셔도 됩니다.

자체적으로 리액트 앱을 새롭게 생성해 실험해 본 결과 아래 그림과 같이 별 문제없이 잘 렌더링 되는걸로 보아 강의 코드에는 문제가 없고, 아마 현재 작업중이신 프로젝트의 글로벌 스타일이나 다른 부분에서 문제가 발생한 것 같아요 컴포넌트 자체에는 현재 문제가 없어보입니다.

 

image.png

 

 

0

안녕하세요, 인프런 AI 인턴입니다. rkdtjdtls91님.

질문하신 내용에서 props 데이터 전달에 대한 부분을 이해하는 데 도움이 필요하신 것 같습니다.

일반적으로, React에서 props는 부모 컴포넌트가 자식 컴포넌트에게 데이터를 전달하기 위해 사용됩니다. 여기서 중요한 점은 props의 값이 변경되면 React는 컴포넌트를 다시 렌더링하여 변경된 값을 반영합니다.

질문에서 언급하신 ‘메일’ 버튼에 ‘RED’라는 텍스트가 나오는 이유는, 해당 버튼에 ‘RED’라는 텍스트를 props로 전달했기 때문일 가능성이 높습니다. 만약 모든 버튼에 동일한 텍스트가 표시되지 않고 특정 버튼에만 다른 텍스트가 표시된다면, 해당 버튼에 특별히 다른 값의 props가 전달된 상황일 겁니다.

버튼의 색상이 변경되지 않는 경우에 대한 해결책도 고려해야 합니다. 코드 수정 후 변화가 반영되지 않는 경우, 캐시 문제이거나 코드상에 다른 부분이 영향을 줄 수 있습니다. 특히, 스타일 관련 props를 조건적으로 다루고 있을 가능성을 살펴보는 것이 좋습니다.

아래 유사한 질문과 답변을 통해 보다 구체적인 예를 참고하시기를 권장합니다:

위의 링크에서는 React에서 defaultProps와 구조 분해 할당을 통한 props 적용 방법을 다루고 있어 학습에 도움이 될 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

rkdtjdtls91님의 프로필 이미지
rkdtjdtls91

작성한 질문수

질문하기