Javascript Reactjs-如何基于成功的axios帖子创建布尔值?

Javascript Reactjs-如何基于成功的axios帖子创建布尔值?,javascript,reactjs,axios,Javascript,Reactjs,Axios,我有一个调度,用于确认用户是否已登录。目前,它根据登录字段中的任何输入发送数据。这意味着,您可以输入错误的用户名和密码,而调度将起到一切作用,就好像凭据是正确的一样 我只想在用户成功输入正确的用户名和密码后使用我的分派。这是我的密码 export default function SignIn() { const history = useHistory(); const initialFormData = Object.freeze({ email: '',

我有一个调度,用于确认用户是否已登录。目前,它根据登录字段中的任何输入发送数据。这意味着,您可以输入错误的用户名和密码,而调度将起到一切作用,就好像凭据是正确的一样

我只想在用户成功输入正确的用户名和密码后使用我的分派。这是我的密码

export default function SignIn() {
    const history = useHistory();
    const initialFormData = Object.freeze({
        email: '',
        password: '',
    });

    const [formData, updateFormData] = useState(initialFormData);

    const handleChange = (e) => {
        updateFormData({
            ...formData,
            [e.target.name]: e.target.value.trim(),
        });
    };

    const dispatch = useDispatch();

    const handleSubmit = (e) => {
        e.preventDefault();
        console.log(formData);

        axiosInstance
            .post(`auth/token/`, {
                grant_type: 'password',
                username: formData.email,
                password: formData.password,

            })
            .then((res) => {
                console.log(res);
                localStorage.setItem('access_token', res.data.access_token);
                localStorage.setItem('refresh_token', res.data.refresh_token);
                history.push('/');
                window.location.reload();
            });

        dispatch(login({
            name: formData.email,
            password: formData.password,
            loggedIn: true,
        }))
    };
下面是问题的重点,我只想在用户成功登录的情况下取消我的调度。当前,任何文本字段输入都将触发调度

        dispatch(login({
            name: formData.email,
            password: formData.password,
            loggedIn: true,

我在想一个布尔值,它为成功的POST HTTP 200请求提供了一个true false?如果有更简单的方法,那么我想知道:)

将调度放在then块中,并添加catch方法来处理错误

    const handleSubmit = (e) => {
    e.preventDefault();
    console.log(formData);

    axiosInstance
        .post(`auth/token/`, {
            grant_type: 'password',
            username: formData.email,
            password: formData.password,

        })
        .then((res) => {
            console.log(res);
            localStorage.setItem('access_token', res.data.access_token);
            localStorage.setItem('refresh_token', res.data.refresh_token);
            history.push('/');
            window.location.reload();
            dispatch(login({
             name: formData.email,
             password: formData.password,
             loggedIn: true,
           }))
        })
        .catch(err => {
           // HANDLE ERROR HERE
        }
};

我还有一个问题,您建议我在错误函数中添加什么?您最好从服务器接收400状态代码。根据配置方式,您可能会收到错误消息。因此,您可以向用户显示该错误消息。i、 e.“电子邮件不存在”,“密码不正确”