我遇到问题,使用 axios post 方法时无法在 action.payload.data 中获取数据。

在注册页面上,我在提交表单时触发操作

  onSubmit(props) { 
    this.props.signUpUser(props) 
      .then(() => { 
      this.context.router.push('/'); 
      }); 
  } 

在操作文件中

export function signUpUser(props) { 
    console.log("props", props); 
    const request = axios({ 
        url: 'http://localhost:3000/api/users', 
        method: 'post', 
        data: props 
    }) 

当我console.log它显示的 Prop 时

 props Object {username: "11", email: "1", password: "1", passwordConfirmation: "1"} 

但是当我控制台将其记录在 reducer 上时。 我在 object.config.adapter 中获取数据,而不是 object.data。

export default function(state = INITIAL_STATE, action) { 
    switch(action.type) { 
        case SIGN_UP_USER: 
            console.log(action.payload); 
            return action.payload.data; 
        default: 
            return state; 
    } 
} 

当我检查数据库时,我可以看到数据运行良好,但不知道为什么当我调用 Payload.data 时会得到空数组。我的目标是将注册用户的信息存储到reducer,以便我在他们注册后显示他们的信息。

请您参考如下方法:

您确定您的 API 正在返回任何数据吗?在我看来,您的代码按预期工作,但您的 API 没有返回任何数据。我不认为这是一个 React/Redux 问题。

您所指的data对象, {用户名:“11”,电子邮件:“1”,密码:“1”,密码确认:“1”} 是 API 帖子正文中的数据。

您应该查看您的 API/用户 Controller ,了解它为何不在响应中返回数据。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!