Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

ENN

useSelector useEffect에서 사용하기 본문

프론트엔드

useSelector useEffect에서 사용하기

asaei623 2022. 12. 22. 12:09

useSelector는 useEffect내에서 사용할 수 없다.

다음과 같은 오류가 발생할 것이다.

"useSelector" cannot be called inside a callback.

그러나 useSelector로 택한 값으로 초기 설정을 하고 싶은 경우가 발생한다.

이럴 때는 어떻게 해야 할까?

 

const selectorData = useSelector(...);
const [data, setData] = useState(selectorData);

useEffect(() => {
  setData(selectorData)
}, [selectorData])

위와 같이 useState를 사용하면 간단히 해결된다. 

 

하지만 이렇게 해도 해결되지 않는 경우가 생긴다.

 

'selectorData'가 'data'의 값으로 들어오는데 딜레이 시간이 발생하면, setData(selectorData)를 하더라도 'data'에 그냥 undefine 값이 들어갈 수 있다.

 

이럴 때는 아래와 같이 해결할 수 있다.

const selectorData = useSelector(...);
const [data, setData] = useState(selectorData);

useEffect(() => {
  setData(selectorData)
}, [selectorData, data])

이렇게 수정하면 초기 실행시 반드시 'data'에 'selectorData'값을 넣을 수 있다.

'프론트엔드' 카테고리의 다른 글

SPA(Single Page Application)vs MPA(Multi Page Application)  (0) 2023.01.06
[React] States Props  (0) 2022.09.19
Redux와 SWR 비교  (0) 2022.09.14
Typescript 유틸리티 타입  (0) 2022.09.14
ajax, fetch, axios 비교  (0) 2022.09.14