Есть "кастомный" хук useAction, который возвращает другой хук, а он в свою очередь диспатчит данные в редакс стор.
Суть вопроса такова: Как хук, который находится в теле моего функционального компонента, дает доступ(передает) в хук полученный при вызове кастомного хука, который стоит в массиве зависимостей в хуке функционального компонента , новые данные из локального стейта(menuState)? Как я понимаю у хука функциональном компоненте есть доступ к menuState(очевидно) , но как его получает actionCreator , просто как из контекста его берет ? или полностью перезапись происходит переменной const actionCreator = useAction(changeMenuState,{menuState:!menuState},menuState); ?
Функциональный компонент:
export const MenuBtn = (props) => {
const [menuState,setMenuState] = useState(false);
const getMenuState = useSelector((state) => state.menu.menuState);
useEffect(()=>{
setMenuState(getMenuState);
},[getMenuState]);
const actionCreator = useAction(changeState,{menuState:!menuState},menuState);
const changeMenuState = useCallback((elem)=>{
actionCreator()
},[actionCreator])
return (<div>
</div>)
Кастмный хук:
export const useAction = (action, data, deps = null) => {
const dispatch = useDispatch();
const actionCreator = useCallback(()=>{
dispatch(action({...data}))
},deps? [deps] : [dispatch])
return actionCreator;
};