Как перенаправить пользователя после отправки формы с помощью React - PullRequest
1 голос
/ 25 октября 2019

Я изучаю React. У меня есть страница входа в систему с формой ("/ login"), которая после успешной отправки я хочу перенаправить пользователя к корневому пути ("/") домена. Я использую Redux, который, кажется, работает нормально. Мой код:

const handleSubmit = (e) => {

        e.preventDefault()

        setSubmitBtn(true)

        setTimeout(async (e) => {

            const { data } = await axios.post( axiosURL + '/login', inputs)

            dispatch({ type: 'LOGIN' })

            history.push("/")

            setReturnMessage(data.message)

            setSubmitBtn(false)

        }, 1000)
    }

Проблема в history.push("/"), который не работает, и выдает следующее сообщение об ошибке:

Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in a useEffect cleanup function.
    in Login (created by Context.Consumer)
    in Route (at routes.js:36)

Кто-нибудь знает, как это исправить? Спасибо !!

1 Ответ

0 голосов
/ 25 октября 2019

Дело в том, что вы делаете это после history.push("/"):

setReturnMessage(data.message) 
setSubmitBtn(false)

Прокомментируйте эти строки, и ошибка должна исчезнуть.

Вы также можете сделать это:

setReturnMessage(data.message)
setSubmitBtn(false)
history.push("/")  <--- as the last line of code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...