当前位置: 首页 > 知识库问答 >
问题:

Redux更新状态太慢后axios.post调用

冯浩旷
2023-03-14

所以我尝试使用react、redux应用一个简单的登录功能。通过使用axios post请求发送到django服务器(用户名、密码),但问题出在调用它的组件上。例如组件A。所以场景是这样的:

  1. 用户输入用户名和密码,然后单击提交

>

class A extends Component{
  handleSubmit = (values) => {
      this.props.onAuth(values.username, values.password);
      if(!this.props.error){
         // redirecting somewherr
      }else{
         // giving error message
      }
  }

 render() {
  return{
      <Form onSubmit={this.handleSubmit}>
       <Input name="username"/>
      <Input name="password"/>
     </Form>
  }

}
  const mapStateToProps = (state) => {
   return {
     error: state.error,
   };
};

   const mapDispatchToProps = (dispatch) => {
    return {
           onAuth: (username, password) => 
  dispatch(actions.authLogin(username,password)),
    };
};

导出默认连接(mapStateToProps, mapDispatchToProps)(LoginView);

}

>

  • 我的初始状态

    const initialState={token:null,error:null,loading:false,};

    登录操作

      export const authLogin = (username, password) => {
        return (dispatch) => {
          dispatch(authStart());
        axios
        .post("http://127.0.0.1:8000/login/", {
          username: username,
          password: password,
        })
        .then((res) => {
          // some more code here
          dispatch(authSuccess(token));
        })
        .catch((err) => {
          dispatch(authFail(err));
        });
    };
    

    };

    动作失败

    export const authFail = (error) => {
     return {
       type: actionTypes.AUTH_FAIL,
       error: error,
    

    };};

  • 共有1个答案

    卢志业
    2023-03-14

    我想处理这个问题的方法是使用重定向函数的setTimeout函数

    setTimeout(() => {
        // redirecting function call
       }, 3000);
    

    帮我修好了

     类似资料:
    • 我的Redux状态是如何更新的,可以在pokelist.js文件中注销,但是我的状态变量没有设置好,cardList还是一个空数组,我如何正确设置状态?我注销pokelist.js文件中的集合,它首先注销一个空数组,然后是一个包含元素的数组。

    • 我正在尝试使用React Redux。我遇到了这样一种情况:一个连接的组件(Coordinates.jsx)嵌套在另一个连接的组件(Canvas.jsx)中。 源代码https://github.com/RinatRezyapov/Vault-13.git(纱线安装,然后纱线开始) 在父组件画布中。jsx I在componentDidMount()中调度一个操作,该操作不可变地更改状态。 帆布js

    • 我正在尝试学习React(使用redux),所以我正在制作一个应用程序,在其中我可以创建训练计划,将训练添加到计划中,然后将训练添加到训练中。 PlanListComponent 我的PlansList组件为每个计划呈现一张卡片。在这张卡片中,它为该计划中的每个训练呈现一个训练列表。将训练添加到计划后,“计划列表”组件不会重新渲染。添加的训练仅在我刷新页面后显示。我之所以选择这种情况,是因为我必须

    • 问题内容: 保持不变,尽管我在函数中调度了一个动作: 输出为NO_AUTH(的初始值) 减速器: 知道为什么吗? 问题答案: 您当前正在直接在未映射到的componentDidMount内部调度: 这应该做的工作: 现在,这将获得authState:

    • 使用最新iOS设备中的M7芯片,当用户使用CMMotionActivityManager从静止状态转到跑步、行走等状态时,可以通过编程方式获得通知。Stava和Runkeeper都使用此功能在检测到用户未通过M7移动时自动暂停GPS轮询(关闭GPS天线),然后在再次移动时重新启用GPS更新。它可以在应用程序处于后台状态时执行此操作,这是此处的关键。 复制此功能时遇到的问题是,如果我在应用程序处于后

    • 我想知道我是否正确理解了React或React Native中的Redux-thunk异步操作模式,以及我们如何对操作状态进行用户反馈。 我觉得要么我不明白这个模式,要么这个谜题还有其他部分。 所以,在我的 React 原生应用程序中(但它也可能适用于 React),我想调用一个更新 REST 调用,这将返回一个promise。如果成功或失败,我想向用户显示相应的消息。 没有Redux-async