[REACTJS] useEffect 내부 상태는 후크 반응 항상 초기 상태를 말한다
REACTJSuseEffect 내부 상태는 후크 반응 항상 초기 상태를 말한다
해결법
-
1.당신이 구성 요소의 마운트 초기에 실행하여 useEffect를 작성했습니다 때문에, 어느 참조 초기 메시지의 값과 폐쇄를 생성하는 메시지 업데이트, 아직 후속 호출에 같은 값을 참조 할 경우에도
당신이 구성 요소의 마운트 초기에 실행하여 useEffect를 작성했습니다 때문에, 어느 참조 초기 메시지의 값과 폐쇄를 생성하는 메시지 업데이트, 아직 후속 호출에 같은 값을 참조 할 경우에도
대신 마운트 메시지 변경 초기에 실행하는 useEffect를 구성해야
export function useChat() { const [messages, setMessages] = useState([]); useEffect(() => { const socket = openSocket("http://localhost:3003"); socket.on("chat message", msg => { const newState = update(messages, { $push: [msg] }); setMessages(newState); }); }, [messages]); return { messages }; }
그렇지 않으면 당신은 업데이트 상태로 콜백 패턴을 사용할 수 있습니다
export function useChat() { const [messages, setMessages] = useState([]); useEffect(() => { const socket = openSocket("http://localhost:3003"); socket.on("chat message", msg => { setMessages(prevMessages => update(prevMessages, { $push: [msg] });); }); }, []); return { messages }; }
from https://stackoverflow.com/questions/54675523/state-inside-useeffect-refers-the-initial-state-always-with-react-hooks by cc-by-sa and MIT license
'REACTJS' 카테고리의 다른 글
[REACTJS] 효소 얕은 래퍼의 내용을 인쇄하는 방법 (0) | 2020.11.15 |
---|---|
[REACTJS] 의 반응 MouseEvent는, offsetX / offsetY이 없습니다 (0) | 2020.11.15 |
[REACTJS] 어떻게 정지에 반응 네이티브 링크를 podspec을 가지고 그것으로 CocoaPods 도서관을 연결에서? (0) | 2020.11.15 |
[REACTJS] 프로젝트 폴더에 만들어지고하지 DIST 폴더를 웹팩? (0) | 2020.11.15 |
[REACTJS] 에서 라우터 프로그래밍 반응 새 탭에서 링크 열기 (0) | 2020.11.15 |