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

skywalk님의 프로필 이미지
skywalk

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]

소스파일 코드 미스

작성

·

153

0

<select onChange={continentChangeHandler}>

                    {Continents.map(item => (

                        <option key={item.key} value={Continent}> {item.value}</option>

                    ))}

 </select>

풀소스에 이렇게 되어 있어 비디오를 다시보고 

<select onChange={continentChangeHandler} value={Continent} >

                    {Continents.map(item => (

                        <option key={item.key} value={item.key}> {item.value}</option>

                    ))}

 </select> 로 수정하니 동작 되었습니다.

답변 4

2

John Ahn님의 프로필 이미지
John Ahn
지식공유자

아  지금  Continents를 정의해 놓은 것을 보면 

const Continents = [
{ key: 1, value: "Africa" },
{ key: 2, value: "Europe" },
{ key: 3, value: "Asia" },
{ key: 4, value: "North America" },
{ key: 5, value: "South America" },
{ key: 6, value: "Australia" },
{ key: 7, value: "Antarctica" }
]

이렇게 해놓았잔아요 

그리고   State 쪽에 보면 

Continent를 위한 InitialState을 

const [Continent, setContinent] = useState(1)

key를 이용해서 잡아두었습니다 ~ 

그러기에 value={item.key} 여기에서  value를   value로 넣은게 아닌 key를 이용해서 

잡아두었습니다. 

만약    InitialState을   value로    useState("Africa")이런식으로 했다면 

item.value 이런식으로 하고     다른쪽에서 continent종류를 가져올때  value를 통해서

분별해서 가져올수 있을거 같습니다.

아 그 4개랑 3개로 가져오는 부분은 소스 문제라기 보다는    Ant Design을 이용해서 지금 스타일링을 하고있는데  아마 반응형을 만드는 소스 부분에서 Ant Design에서 부분적으로 문제가 있는게 아닌가 생각이 듭니다 ^^;;;

1

skywalk님의 프로필 이미지
skywalk
질문자

고맙습니다.

그런데 <option key={item.key} value={item.key}> {item.value}</option> 코드에서 value={item.value} 인것 같아서 했더니 파일 저장이 안되더군요. 왜그런지 value={item.key} 부분이 이해가 안되고요.

그리고 동작에서 랜딩페이지로 브라우저로 그림이 표시되는데 4개씩 보여질때는 정상적으로 보이는데... 3개씩 이거나 4개로 확장할때 첫줄은 정상적으로 표시되지만 아랫줄은 3칸이 비고 마지막에 한개의 그림이 표시 되고 더확장하면 정상적으로 됩니다. 추가로 업로드 해도 비슷한 경우가 나타납니다. 반응속도 탓 인가요.? 코드에서는 문제가 없는 것 같은데 이해가 안되네요.  감사합니다.

1

John Ahn님의 프로필 이미지
John Ahn
지식공유자

안녕하세요 skywalk 님  !!!  아  소스 코드가 잘못 되어있어서 괜한 시간 엄청 쓰셨네요 ㅠㅠ    

죄송합니다 ㅠㅠ !!! 

그리고  알려주셔서 감사합니다  바로 수정하겠습니다 ~ !!!! 

0

skywalk님의 프로필 이미지
skywalk
질문자

초보라서 state와 연관 된것을 인지하지 못했군요.  감사합니다. 반응형은 있는지 몰라도 sm={ } 을 추가로 넣을까 생각도 해보았습니다.

고맙습니다. 강의 잘 보고 있습니다.  좋은 강좌 계속 부탁드립니다.

skywalk님의 프로필 이미지
skywalk

작성한 질문수

질문하기