Задать вопрос
@EmKotlety

Как правильно воспользоваться хуком useHistory?

При попытку переадресации получаем ошибку "Invalid Hook Call Warning". Все способы с версиями react и router-dom пересмотрел. Может чего не доглядел. Без useHistory все работало
export const createPostFunction = (form) => {
    
    return async dispatch => {
        let history = useHistory()
        dispatch(setLoader()) 
        try {
            const response = await axios.post(`http://localhost:5000/api/auth/create`,
            {...form},
            {headers:{Authorization:`Bearer ${localStorage.getItem('token')}`}},
                
            )
            const newPost = response.data.post
            dispatch(createPost(newPost))
            console.log('мы тута2')
            
            history.push('/links')
            localStorage.setItem('token', response.data.token)
        } catch (e) {
            dispatch(disableLoader());
            console.log(e)
            
        }
    }
}
  • Вопрос задан
  • 143 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
vovaspace
@vovaspace
Frontend Engineer
Хук должен вызваться при рендере компонента, причём при каждом. У вас явно не так. Используйте useHistory в самом компоненте, а в эту функцию передайте через аргумент.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽