codestates / codestates/BanThing
[Error Handling] room 에러
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
### 어떤 에러인가요?



- 치킨 방을 들어갔을 때 댓글이 쓰여진 것을 볼 수 있다. 마지막 사진을 보면 1번 즉 1번 방에서 채팅을 친 것인데 로그를 찍어보면 치킨의 룸 아이디는 43번이다, 이건 정말 서비스의 심각한 문제이다.
```
$ 터미널의 에러 코드를 여기 넣어주세요.
```
### 에러 핸들링 방법
- merge 전 상태로 돌아가 비교를 해보았다.


- 정상적으로 작동되는 것을 볼 수 있다.
- 그렇다면 무엇이 문제였을까하고 생각하다가
- 어제의 에러인 이 에러가 떠올랐다.

먼저 아래의 상태로 되돌아 가보자
```
useEffect(() => {
const getPosts = async () => {
try {
if (roomsId !== 0) {
axios
.post(`${process.env.NEXT_PUBLIC_SERVER_ENDPOINT}/main`, {
id: roomsId,
})
.then((response) => {
setData(response.data);
});
}
} catch (e) {
console.log(e);
}
};
getPosts();
}, [roomsId]);
if (chats) {
setUsersChats(chats);
}
if (data) {
setroomTitle(data.data.post.title);
}
```

- 에러가 나지만 기능은 정상적으로 사용이 된다.
- 어제의 해결법으로 돌아가 보자
```
useEffect(() => {
const getPosts = async () => {
try {
if (roomsId !== 0) {
axios
.post(`${process.env.NEXT_PUBLIC_SERVER_ENDPOINT}/main`, {
id: roomsId,
})
.then((response) => {
setData(response.data);
});
}
} catch (e) {
console.log(e);
}
};
getPosts();
if (chats) {
setUsersChats(chats);
}
if (data) {
setroomTitle(data.data.post.title);
}
}, [roomsId]);
```

- 기능이 정상적으로 작동이 되지 않는다.
- 그렇다면 useEffect를 새로주어 해결해보자
```
useEffect(() => {
if (chats) {
setUsersChats(chats);
}
if (data) {
setroomTitle(data.data.post.title);
}
}, [data, chats]);
useEffect(() => {
const getPosts = async () => {
try {
if (roomsId !== 0) {
axios
.post(`${process.env.NEXT_PUBLIC_SERVER_ENDPOINT}/main`, {
id: roomsId,
})
.then((response) => {
setData(response.data);
});
}
} catch (e) {
console.log(e);
}
};
getPosts();
}, [roomsId]);
```

- 기능이 정상적으로 작동하는 것을 볼 수 있다.
- 오늘의 교훈: 오늘의 해결책이 내일의 버그이다.
### 에러 핸들링을 위해 참고한 레퍼런스 링크
[링크](https://github.com/codestates/Memory-It/issues/205)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.