개발자
설명을 쉽게 하기 위해 App.js ->A컴포넌트, 자식1.js ->B컴포넌트, 자식2.js-> C컴포넌트라고 하겠습니다!! 현재 리뷰를 작성하는 프로그램을 만들고 있습니다. 우선 B컴포넌트에서 데이터를 입력 받아 A컴포넌트에게 import하고 C컴포넌트로 넘겨줘야하는 상황입니다. console.log를 찍어보면 B->A로 object로 잘 넘어가고 A->C로 Array로 잘 넘어 옵니다. 근데 C에서 출력이 안됩니다. name=‘user'로 넘겨주고 받고 있는데 C에서 return ( 작성자 : {user})를 입력해도 안나옵니다.. array 이름은 reviewList인데 함수를 새로 만들어서 reviewList를 스프레드 연산자로 펼쳐줘야 하는건가요??
답변 2
익명
작성자
2022년 11월 07일
C에서 return 전에 console.log()로 확인해보면 Array로 넘어옵니다! 그래서 작성자 : {배열명.user}로 해봤는데도 에러가 납니다ㅜㅜ 혹시 B->A로 갈땐 object로 넘어가는데 A->C로 갈 땐 array로 넘어가서 문제가 생기는걸까요??
성원
Software Engineer • 2022년 11월 07일
타입이 Array라면 배열[index].user와 같이 배열 안의 엘리먼트 값에 접근해야 할 것 같습니다!
익명
작성자
2022년 11월 07일
한번 해보겠습니다!!
console.log 를 통해 C컴포넌트에서 출력이 되는걸 확인했는데 출력이 안된다는건 어떤의미인가요? C 컴포넌트에서 화면에 data가 안보인다는 것을 의미하는 건가요? 그렇다면 C 컴포넌트에서 return 되는 구조의 코드를 보면 좀 더 자세히 알 수 있을 것 같아요!!
익명
작성자
2022년 11월 07일
return절 밖에서 console.log를 해보면 배열형태로 값이 전달받아집니다!! 근데 return문 안에서 array값을 못읽습니다ㅜㅜ 예를 들어 console.log(배열명) return( 작성자 : {user} 내용 : {content} ) 로 해보면 return 밖에 있는 console.log에선 배열명[user:1, content: good]이 출력되지만 return 문 안에서 선언한 {user}과 {content}는 아무것도 출력되지 않습니다ㅜㅜ 글로 설명하려니 정신없어 보여서 죄송해요ㅠㅠ
엄홍재
커리어리 소프트웨어 엔지니어 • 2022년 11월 07일
[user:1, content: good] 이런 구조가 나올수가 있나요? console.log 로 출력한게 배열인가요??? 그렇다면 혹시 [{user:1, content: 'good'}] 이런형태인건지??? 아니면 {user:1, content: 'good'} 이거인건지.... 어쨌든 둘다의 경우라도 user, content를 선언하지 않고 바로 사용하면 {user} {content} 이렇게 사용할 수 없을것 같아요 배열명이라고 하셨으니가 임의로 배열명을 myArray라고 할게요 myArray가 [{user:1, content: 'good'}] 경우 const {user, content} = myArray[0] 이렇게 정의해야 return에서 {user}, {content}로 사용할 수 있어요 아니면 다 풀어서 {myArray[0].user} 이런식으로 써야합니다. 출력형태를 알려주시면 좀더 정확하게 답변드릴수 있을거같아요!
익명
작성자
2022년 11월 07일
상세한 답변 너무 감사드려요ㅠㅠ 배열 출력 구조가 [{user:1, content:'good'}] 이런 형태입니다!! 설명해주신 것 처럼 정의해보고 다시 해보겠습니다!!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!