prevState
setState를 이용해서 isOpen이라는 state값을 true/false로 바꾸는 함수를 구현해보자.
// isOpen이라는 state를 true/false로 스위칭한다.
const [ isOpen, setIsOpen ] = useState(false);
const onClickButton = () => {
if (isOpen === false) {
setIsOpen(true)
} else if (isOpen === true) {
setIsOpen(false)
}
}
setState의 prev라는 인자를 이용하면 이 코드를 더 간단하게 줄일 수 있다.
const [ isOpen, setIsOpen ] = useState(false);
const onClickButton = () => {
setIsOpen(prev => !prev)
}
setState 내부에 들어가는 prev라는 인자는 해당 state의 직전 값을 반환한다.
이 prev와 화살표 함수를 이용해 이전의 state값이 true였다면 false로, false였다면 true로 바뀌는 함수를 쉽게 구현할 수 있다.
'React, Next.js' 카테고리의 다른 글
[React, Next.js] Apollo Client Caching을 통해 살펴보는 Next.js와 React의 렌더링 차이 (2) | 2022.09.24 |
---|---|
[React] 컴포넌트 생명주기 - Component Life Cycle (with useEffect) (0) | 2022.02.09 |
[React] 클래스형 컴포넌트 vs 함수형 컴포넌트 (0) | 2022.02.09 |
[React] 자주 쓰는 React 기반 라이브러리, 프레임워크 모음 (0) | 2022.02.05 |
[React/Typescript] Eslint / prettier 설치 및 기본 세팅 (0) | 2022.01.24 |