【问题标题】:Get response data from axios post request typeScript从 axios post request typeScript 获取响应数据
【发布时间】:2022-10-19 18:49:53
【问题描述】:

我正面临 axios post 方法的问题。当我创建用户发布请求发送到 api 并作为响应它返回给我用户名密码和电子邮件。但是我无法从响应中得到它来访问它来完成我的工作。

这是我发送请求的创建用户功能

  createUser = async (data: CreateUser) => {
    try {
      await agent.createUser.create1(data,data.profilePhoto!).then((res)=>{
//here i destructure result
        const {request,config,data,status,headers,statusText}=res;
        runInAction(()=>{
           // #1 here i Save response in userResponse Interface and Console it it shows on console on type of proxy
           this.userResponse = res;
           console.log(this.userResponse?.data)
        })
// #2 when i direct console data it gives me all data 
        console.log(data);
      
      });
      runInAction(() => {
        this.loadUser({pageIndex:0, pageSize:5});
      });
    } catch (error) {
      console.log(error);
    }
  };

这是控制台中的 #1 结果

和#2

我的代理代码是这样的

create1: (data: CreateUser,file:Blob) =>{
    let formData=new FormData()
    formData.append("profilePhoto",file)
    formData.append("userName",data.userName)
    formData.append("email",data.email)
    formData.append("password",'abc@123')
    formData.append("phoneNumber",data.phoneNumber)
    formData.append("language",data.language)
    formData.append("positionTitle",data.positionTitle)
    formData.append("userRoles",data.userRoles!.toString())
    formData.append("allowedDepartments",data.allowedDepartments!.toString())
    formData.append("allowedSecurityLevels",data.allowedSecurityLevels!.toString())
    formData.append("allowedDocumentType",data.allowedDocumentType!.toString())
    formData.append("departmentId",data.departmentId.toString())
    formData.append("organizationId",data.organizationId.toString())
    return axios.post<CreateUser,any>('/User/CreateUser',formData,{
      headers:{"Content-type":"multipart/form-data"},
    })  

  },

这是我用于存储响应数据的接口

 export interface responseCode{
        code:number;
        message:string;  
        data:{
            email:string;
            password:string;
            userName:string;
           
        };
    }

【问题讨论】:

  • 请停止像这样使用随机大写字母书写。阅读这样的文本非常烦人——现在其他人正在解决你的问题。
  • 请改写您的问题 - 目前尚不清楚问题出在哪里。
  • @LiorPollak 我不明白哪些字母会影响您的意思。顺便说一句,我解决了我的问题,谢谢

标签: reactjs typescript react-typescript


【解决方案1】:

我为此找到的解决方案 曾是 接口应以 resp.data 格式排列

// Before Interface 

export interface responseCode{
        code:number;
        message:string;  
        data:{
            email:string;
            password:string;
            userName:string;
           
        };
    }



//After Correcting
 export interface responseCode{
        code:number;
      
        data:{
            email:string;
            password:string;
            userName:string;
           
        };
        message:string
    }

而不是在 runinAction 里面 将 res 分配给 userResponse 像这样

 //Before code 

 this.userResponse = res;

//after Fixing
this.userResponse = res.data;

Thane 响应数据将保存在 userReaponse 我可以在任何我想要的地方访问它。

【讨论】:

    猜你喜欢
    • 2020-03-22
    • 1970-01-01
    • 2019-03-21
    • 2021-07-27
    • 2019-11-26
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多