= { ... , config: defaultConfig };
// function reducer() { ... };
const [state, dispatch] = useReducer(reducer, initialState);
console.log("component render");
useEffect(() => {
//async load config
dispatch({ type: "updateConfig", payload: res.data.config });
return () => {
console.log("useEffect [] return");
}
}, []);
useEffect(() => {
return () => {
console.log("useEffect [state] return");
}
}. [state]);
ок, я сделал зависимость от state, что логично, но теперь другой трабл
ответ что-то вроде:
```
component render
useEffect [state] return
component render
useEffect [state] return
component render
// закрытие компонента
useEffect [] return
useEffect [state] return
```
какая вообще может быть причина такому поведению?
https://t.me/react_js/716850
Потому что он перед тем как запустить эффект сначала запускает клинап предыдущего
Держи решение const [state, dispatch] = useReducer(reducer, { count: 0 }); const _state = useRef(); useEffect(() => {_state.current = state; }, [state]); useEffect( () => () => console.log("Sending state to server!", _state.current), [] );
Обсуждают сегодня