codestates / codestates/UptoDoor

[๐ŸŒช Error Handling] input value vs defaultValue & onChage/ 2021-09-27

Open
#216 0 comments 0 reactions 1 assignee Claimed by @22sook00 View on GitHub
Client complete error
Dominant language
JavaScript
Stars
1
Forks
4
PR merge metrics
No merged PRs in 30d

Description

### ์–ด๋–ค ์—๋Ÿฌ์ธ๊ฐ€์š”?
- input ์ฐฝ์—์„œ quantity ๋ฒ„ํŠผ ๋ˆŒ๋Ÿฌ ๊ฐฏ์ˆ˜์กฐ์ • ์‹œ 0๊ฐœ ์ดํ•˜๋กœ ๊ฐ€๋ฉด return false ํ•˜๋Š” ํ•จ์ˆ˜ ์ž‘์„ฑ.
- input์˜ ๋ฐธ๋ฅ˜๊ฐ€ defaultValue ๋กœ ๋˜์–ด์žˆ์–ด์„œ if ๋ฌธ์„ ์ž‘์„ฑํ•ด๋„ ์ ์šฉ๋˜์ง€ ์•Š์Œ. [๊ณ„์† ๋งˆ์ด๋„ˆ์Šค ์ˆ˜๋Ÿ‰ ํ‘œ์‹œ๊ฐ€ ๋จ.]
- ๊ณ ์ •๊ฐ’์ธ defaultValue ์—์„œ value ๋กœ ๋ฐ”๊ฟ”์„œ ์ˆ˜๋Ÿ‰์กฐ์ ˆ๋ฌธ์ œ๋Š” ํ•ด๊ฒฐํ–ˆ์ง€๋งŒ ์ฝ˜์†”์ฐฝ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๋ฐœ์ƒ.

### ์—๋Ÿฌ ๋ฉ”์‹œ์ง€
![แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-09-27 แ„‹แ…ฉแ„’แ…ฎ 9 39 35](https://user-images.githubusercontent.com/80618616/134910202-7079a01d-7e75-4597-a12e-34eed6de36f9.png)

**๊ธฐ์กด์ฝ”๋“œ**
```js
//* ์ˆซ์ž ๋นผ๋Š” ํ•ธ๋“ค๋Ÿฌ
const decrement = useCallback((e,id) =>{
const btn = e.target.parentNode.parentElement.querySelector(
'button[data-action="decrement"]'
);
const target = btn.nextElementSibling;
let value = Number(target.value);
if(value < 1){
return false;
}else{
value--;
target.value = value;
dispatch(setQuantity(target.value, id));
}
});

```

### ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋ฐฉ๋ฒ•

- ์—๋Ÿฌ์ฝ”๋“œ๋ฅผ ์ฝ์–ด๋ณด๋‹ˆ readOnly์™€ defaultValue ๊ฐ€ ์•„๋‹Œ ์ด์ƒ value ๊ฐ’์„ ์‚ฌ์šฉํ• ๋• onChange ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์“ฐ์—ฌ์žˆ๋‹ค.
- input๊ฐ’์— onChange ํ•จ์ˆ˜๋ฅผ ๋„ฃ๊ณ  ์ž„์˜์˜ ์ƒํƒœ๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•˜์—ฌ ํ•จ์ˆ˜์•ˆ์—์„œ e.target.value ์„ setMinusQuantity์— ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค.
- const [minusQuantity , setMinusQuantity] = useState(0)
- ๊ฒฐ๊ณผ์ ์œผ๋กœ ์˜ค๋ฅ˜๋Š” ์•ˆ๋‚˜์ง€๋งŒ minusQuantity๋ฅผ ์“ฐ์ง€์•Š์•„ ์™„์ „ํžˆ ์ข‹์€์ฝ”๋“œ๋ผ๊ณ ๋Š” ๋ณผ ์ˆ˜ ์—†๋Š”๊ฒƒ ๊ฐ™๋‹ค.
- ๊ธฐ์กด์˜ ์ฝ”๋“œ๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ธฐ ์œ„ํ•ด ์ž„์‹œ๋ฐฉํŽธ์„ ์ผ์ง€๋งŒ ๋ฆฌํŒฉํ† ๋ง ํ›„ ๊ณ ์น˜๋Š”์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด๋ฉด ์ข‹์„๊ฒƒ ๊ฐ™๋‹ค.

**๋ณ€๊ฒฝ์ฝ”๋“œ**
```js
const [minusQuantity , setMinusQuantity] = useState(0)
const onChangeQuantity = (e) => {
setMinusQuantity(e.target.value)
}
//* ์ˆซ์ž ๋นผ๋Š” ํ•ธ๋“ค๋Ÿฌ
const decrement = useCallback((e,id) =>{
const btn = e.target.parentNode.parentElement.querySelector(
'button[data-action="decrement"]'
);
const target = btn.nextElementSibling;
let value = Number(target.value);
if(value < 1){
return false;
}else{
value--;
target.value = value;
dispatch(setQuantity(target.value, id));
}
});

```

์ด ๊ฒฝ์šฐ, ๋ฐธ๋ฅ˜๊ฐ’์€ ๊ณ ์ •๋œ ๊ฐ’์ด ์•„๋‹ˆ๊ณ  ์„ ํƒํ•œ ๊ฒƒ์— ๋”ฐ๋ผ ๊ฐ’์ด ๋ฐ”๋€Œ๋Š”๊ฒƒ์ด๊ธฐ ๋–„๋ฌธ์— defaultValue ๋ฅผ ์“ฐ๋ฉด ์•ˆ๋œ๋‹ค.
์˜ˆ๋ฅผ๋“ค์–ด ์ด๋ฆ„๊ณผ ๊ฐ™์€ ๋‹จ์ˆœ ํ…์ŠคํŠธ๊ฐ€ ๋“ค์–ด๊ฐ€๊ณ  ๋ณ€๊ฒฝ๋˜์ง€์•Š๋Š” ๊ฐ’์ด ๋“ค์–ด๊ฐˆ๋• ๊ดœ์ฐฎ์ง€๋งŒ (e.target.value ๋กœ ๋๋‚˜๋Š”๊ฒƒ๋“ค)
๊ฐ€๊ฒฉ, ์ˆ˜๋Ÿ‰, ๋ชจ๋ฐ”์ผ(010-123-2222)๋“ฑ ํ•จ์ˆ˜์•ˆ์—์„œ ์–ด๋–ค ์กฐ๊ฑด์„ ์ฃผ๊ณ , ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด value, onchange ๋ฅผ ์จ์ฃผ๋ฉด ๋œ๋‹ค.

### ์—๋Ÿฌ ํ•ธ๋“ค๋ง์„ ์œ„ํ•ด ์ฐธ๊ณ ํ•œ ๋ ˆํผ๋Ÿฐ์Šค ๋งํฌ

[๋งํฌ]()

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.