useSelector
와 useState
를 병행하여 사용할 경우, store
의 값이 정상적으로 반영되지 않는 문제가 있었다.
무자비한 구글링 및 삽질을 끝으로 해결하여, 그 방법을 작성한다.
useState -> useSelector
useState
는 렌더링
되기 전에 실행.
useSelector
는 렌더링
된 후에 실행.
따라서, 상황은 아래와 같다.
dispatch
진행, store
값 변경.useSelector
로 store
값을 받아 useState
에 전달.컴포넌트
에 리렌더링
진행.useState
가 먼저 진행되고 useSelector
가 진행됨.useEfflect
function containerComponent() {
const storeState = useSelector((state:RootState)=> state.store);
const [useState, setUseState] = useState(false);
useEffect(()=> {
setUseState(storeState)
},[storeState])
}
useState
는 렌더링 전에 실행되므로, useEffect
를 통해 받았다.
끝.