Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- react
- nestjs
- Dinosaur
- Express
- TypeScript
- typeORM
- class
- 정렬
- MongoDB
- jest
- OCR
- cookie
- 게임
- GIT
- flask
- 자료구조
- Python
- MySQL
- game
- AWS
- 공룡게임
- mongoose
- dfs
- nodejs
- Bull
- Nest.js
- Sequelize
- Queue
- JavaScript
Archives
- Today
- Total
포시코딩
[object Object] 문제 해결 본문
728x90
문제 발견
// 설명을 위해 요약된 코드
state.group.members.map((member, i)=>{
<input onClick={(e)=>{test(e)}} value={member}/>
})
redux state에 members 라는 Object Array가 있고 거기서 하나씩 꺼내 input value에 넣어줬는데
클라이언트든 서버든 계속 object Object로 출력되고 안에 내용을 꺼낼 수도 없는 상태가 되버려 한참을 헤맸다.
해결책 도출
value 값에 JSON.stringify()로 넣어주기
꺼내온 값을 value에 그대로 박아 넣는 과정에서 문제가 생긴거라 판단해
JSON.stringify로 감싸봤다.
state.group.members.map((member, i)=>{
<input onClick={(e)=>{test(e)}} value={JSON.stringify(member)}/>
})
// value 출력: {"_id":"63871cb7637561dc3a9acdbc","id":"test3","name":"test3n","rank":1}
예상대로 object Object가 아니고 Object 안의 내용물이 보이게 잘 나온다.
함수에서 value값을 뽑아 쓸 때 JSON.parse() 사용
아래는 이 value 값을 받아 쓰는 test 함수이다.
function pushCheckedValueToArrState(e) {
if (e.target.checked) {
console.log(JSON.parse(e.target.value));
// {_id: '63871cb7637561dc3a9acdbc', id: 'test3', name: 'test3n', rank: 1}
}
}
이제야 제대로된 Object가 출력된다.
마치며
이렇게 받은 데이터를 useState에 넣고 Axios를 통해 Express 서버에서도 받아봤는데
console.log()로 뽑아봐도 아주 잘 출력되는걸 확인할 수 있었다.
사실 기본적인건데 항상 String, Integer 데이터만 보내다 오랜만에 Array, Object 데이터를 보내다보니
이런 문제를 겪은 것 같다.
오늘 있었던 일을 잊지말고 앞으로도 Array나 Object 데이터를 다룰 일이 있으면 JSON.stringify()와 parse()를 기억하자
728x90
'React' 카테고리의 다른 글
[IntersectionObserver] 무한 스크롤 (Infinite Scroll) - React 리액트 버전 (0) | 2023.03.03 |
---|---|
Loading Spinner 만들기 (0) | 2023.03.03 |
CRA (create-react-app) dotenv (0) | 2022.07.21 |
[해결] axios GET 요청 파라미터 오류 (0) | 2022.07.19 |
[진행중] useNavigate(), useEffect(), 무한 Uncaught 발생 관련 (0) | 2022.07.19 |