у меня есть экспортируемая функция, которая рисует форму
export default function LoginUser() {
return (
<div>
<form id="auth_form">
<div className="form-group">
<label htmlFor="Email">Email</label>
<input type="text" className="form-control" id="email" placeholder="Email"/>
</div>
<Button autofocus="true" onClick={() => pushForm()}>Авторизоваться</Button>
</form>
</div>
);
}
Я хочу, чтобы по нажатию на pushFrom происходил запрос к серверу, получался ответ и обновлялся стейт (который работает на Redux).
я вынес pushForm() в отдельную функцию. Она делает запрос к серверу и возвращает token (код урезаю, чтобы только суть осталась)
function pushForm() {
const service = new AuthService;
service.authorizeUserAction(body).then(
({token}) => {
return token;
}
)
}
И теперь мне нужно его задиспатчить в стейт
Я создал еще одну функцию
function dispatchUserInfo( token){
const userListSelector = useSelector(state => state.userList, shallowEqual);
const dispatch = useDispatch();
useEffect(
() => {
dispatch(userTokenAction(token));
},[]
);
}
И пытаюсь вызвать ее из pushForm(). IDE мне на это говорит, что я ничего не возвращаю, поэтому хуки использовать нельзя
https://w6p.ru/NzRlZjA.jpg А мне возвращать нечего..
Я думаю, что я неправильно использую хуки (типо надо перенести хуки в основную фукнцию LoginUser()). Но как тогда построить правильно такой код? Помогите, пожалуйста.