[Error Handling] useState의 set으로 값 변경 후 바로 적용해 넘겨주기
- Dominant language
- JavaScript
- Stars
- 4
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
> ### 어떤 에러인가요?
> 검색 조건(select)을 useState로 저장해서 history.push()로 넘겨주려는데, useState는 비동기로 작동하기 때문에 한 박자씩 늦게 저장됨
> ### 에러 해결 전
> ```js
> const handleSelect = key => e => {
> setSelect({ ...select, [key]: e.target.name });
>
> if (key === 'size') setIsQ1(false);
> if (key === 'space') setIsQ2(false);
> if (key === 'species') {
> setIsQ3(false);
> history.push({
> pathname: '/search',
> state: select,
> });
> }
> };
> ```
> 
> ### 에러 해결 후
> * 핸들링 방법에 대해서 간단하게 기록해보세요.
>
> ```js
> const [isNavigate, setIsNavigate] = useState('');
>
> const handleSelect = key => e => {
> setSelect({ ...select, [key]: e.target.name });
>
> if (key === 'size') setIsQ1(false);
> if (key === 'space') setIsQ2(false);
> if (key === 'species') {
> setIsQ3(false);
> setIsNavigate(true);
> }
> };
>
> useEffect(() => {
> if (isNavigate) {
> history.push({
> pathname: '/search',
> state: select,
> });
> setIsNavigate(false);
> }
> }, [isNavigate]);
> ```
>
>
> ### 에러 핸들링을 위해 참고한 레퍼런스 링크
> [링크](https://stackoverflow.com/questions/69395464/history-push-is-not-working-after-setstate-with-usestate)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.