안녕하세요, 선생님!
리액트는 선생님 것으로만 공부해서 취업한 새싹 개발자입니다.
다름이 아니라 회사에서 멋지게 코드를 망쳐보라며 프로젝트를 줬는데요....
리듀서에 입력된 값은 window.store.getState()에 치면 분명 나오는데
이용하려는 함수에서는 전혀 안 먹히는 문제에 봉착했습니다.
useEffect도 물론 사용해봤는데, 첫번째 클릭한 값은 안 담겨서 두 번 클릭해야 정상 동작 합니다!!! (충격
역시 비동기 문제일까 하고 갑작스럽지만 promise도 써보았지만 뻘짓이라는 걸 알게 됐습니다. (더충격
대충 흐름은 이렇습니다.
미리 받아온 기기의 address 값을 받아 클릭
-> 클릭하는 함수 내 dispatch() -> action 잘 실행돼서 reducer에 값 잘 담김
-> 그런데!! 그 다음에 실행하려는 코드에서는 해당 값이 undefined로 뜸....(클릭한 그 페이지에 있는함수임미다)
지금 이 상황인 것입니다.ㅠㅠ
질문입니다.
useEffect(()=>{
openClose();
}, [gattConnectingStatus])
const openClose = () => {
// 뭔가의 gattConnectingStatus 값이 바뀌면 적용되는 if/else 이용한 함수 어쩌구
}
인데... 받아오는 gattConnectingStatus 값이 window.store.getState() 치면 값이 분명 바뀌어있는데도 다음에 써야할 함수에서는 값이 안 들어와있어서 동작이 안됩니다!
원인이 뭘까요?
어떻게 수정해야 useEffect에 먹힐까요...?
그리고 dispatch 함수에선 async / await 못 쓰나요?!ㅠㅜ