codestates / codestates/newDe

[Error Handling] 특정 상황에서 글이 0개인 페이지가 렌더링됨

Open
#212 0 comments 0 reactions 0 assignees View on GitHub
complete
Dominant language
TypeScript
Stars
2
Forks
1
PR merge metrics
No merged PRs in 30d

Description

> 해결된 에러라면 라벨에 'Complete' 를 달아주세요.
> 미해결된 에러라면 라벨을 'In progress' 로 변경해주세요.

### 어떤 에러인가요?
-
![스크린샷, 2022-03-26 02-12-17](https://user-images.githubusercontent.com/48780896/160169015-a0fba5ea-c9e5-4af7-94a8-2fb72816ef5c.png)
-위 화면처럼 마지막 페이지에서 글이 렌더링 되지 않음
해당 페이지의 글이 0개일 경우 페이지 네비게이터가 해당 페이지를 아예 렌더링 하면 안되는데 쓸데없이 더 렌더링함

### 에러 메시지

```bash
$ 터미널의 에러 코드를 여기 넣어주세요.
```

### 에러 핸들링 방법

- 해당 현상이 발생하는 원인을 살펴보니 글 수가 20, 30, 40개처럼 10개로 나누어 떨어질 때 발생함.
- 서버단에서 maxpage를 계산할때 예외처리가 잘못된것으로 추정되어 서버단 확인

```js
const pageCount = Math.floor(payload.length/10)+1;
```
실제로 해당 maxpage를 구하는 알고리즘은 위와같았음. 이는 마지막 페이지의 글이 1~9개일 경우 유효하지만
마지막페이지의 글이 10개고 그렇기 때문에 10으로 나누어 떨어질 때 문제가 발생함.
더이상 페이지가 필요하지도 않은데 +1이 되어 버리기 때문임
```js

let pageCount = 1
if(payload.length%10 === 0 ){ //페이지가 10으로 나누어 떨어질 경우 +1을 해줄 필요가 없음
pageCount = payload.length/10
}
else {
pageCount = Math.floor(payload.length/10)+1;
}

```
위와같이 10으로 나누어 떨어질때 예외처리를 시켜줌.
const 를 사용하면 조건문안쪽에서 각각 지정을 해 주어야 하고 이렇게 하면 scope가 걸려버리기 때문에 let 을 이용해야 했음.

### 에러 핸들링을 위해 참고한 레퍼런스 링크

[링크]()

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.