728x90
반응형
0. 리액트 리덕트 카운터 프로그램 (input 태그 : payload 하기 전 )
#02 리액트 숙련 :: React Redux 카운터 프로그램 만들기
0. TIL ▶ props의 drilling의 대안으로 스토어에 저장해서 사용하면서 사용하는 리덕스. ▶ 리덕스는 action > dispatch > reducer 순으로 동작한다 ▶ 디스패치를 사용하기 위해서는 useDispatch를 import하고 dis
zerotonine2da.tistory.com
1. input에 입력된 값 (useState): 형변환
[+] 버튼을 누르면 string으로 들어와서 0+2 = 2가 아니라 02가 됨
[위치: App.jsx]
<input type="number" value={number} onChange={(event) => setNumber(+event.target.value)}></input>
▶event.target.value 앞에 + 해주면 형변환 됨.
onChange={(event) => {
const { value } = event.target;
setNumber(+value);
}}
▶ 구조분해할당으로 이렇게도 사용 가능
2. App.jsx
import { useState } from 'react';
import { PLUSN } from './redux/modules/counter';
const [number, setNumber] = useState(0);
return (
<div>현재 카운트: {counter.number}</div>
<input
type="number"
value={number}
onChange={(event) => {
const { value } = event.target;
setNumber(+value);
}}
></input>
<button
onClick={() => {
dispatch(PLUSN(number));
}}
>
+
</button>
);
▶ input 태그에 들어온 값은 number 를 사용
▶ input 태그는 useState()를 사용하여 입력하는 값 setNumber(+value)로 넣어주기 => '+'는 위에서 말한 형변환!
3. counter.jsx
const MINUS_N = 'MINUS_N';
export const PLUSN = (payload) => {
return {
type: PLUS_N,
payload: payload,
};
};
▶ payload를 사용해서 input값에 입력된 값을 저장
const counter = (state = initialState, action) => {
switch (action.type) {
case PLUS_N:
return {
number: state.number + action.payload,
};
default:
return state;
}
};
▶ counter 리듀서 (state에 변화를 일으키는 함수)
끝.
반응형
'TIL :: Today I Learned' 카테고리의 다른 글
#05 리액트 숙련 : 투두리스트의 상세페이지 연결하기(성공) (0) | 2023.11.10 |
---|---|
#04 리액트 숙련 : 투두리스트의 상세페이지 연결하기(실패) (0) | 2023.11.09 |
#02 리액트 숙련 : React Redux 카운터 프로그램 만들기 (0) | 2023.11.08 |
#09 리액트 입문 : 1차로 만들었던 todolist 리팩토링 (0) | 2023.11.08 |
#01 리액트 숙련 : React Hooks 사용해서 input 태그 포커스 옮기기 (0) | 2023.11.07 |