You need to enable JavaScript to run this app. 如何从另一个文件的React axios函数中获取请求返回值?
优惠活动
大模型
产品
解决方案
定价
更多

如何从另一个文件的React axios函数中获取请求返回值?

解决方法

你现在的问题是newAppartement函数没有返回axios生成的Promise实例,导致外部调用时无法拿到异步请求的响应结果,按下面两步修改即可:

1. 修改data.js代码

给newAppartement函数加上return,把axios的Promise实例返回给调用方:

export function newAppartement(newAppartementTableau) {
  // 新增return,返回axios的Promise对象
  return axios({
      method: "post",
      url: urlAxiosAppartement,
      timeout: 1000 * 5,
      headers: {
        "Content-Type": "application/json",
        Authorization: "Bearer " + "****"
      },
      data: {
        fields: {
          nom: newAppartementTableau.nom
        }
      }
    })
    .then((response) => {
      return response;
    })
    .catch((err) => {
      // 也可以选择在这里做全局错误处理后再抛出错误
      return Promise.reject(err);
    });
}

2. 修改form.js代码

异步请求的结果不能同步获取,推荐用async/await语法接收响应:

// 给handleSubmit方法添加async标识
async handleSubmit(event, user,props) {
  event.preventDefault();
  const nomAppartement = event.target.nomAppartement.value;
  const superficieAppartement = event.target.superficieAppartement.value;

  const newAppartementTableau = {
    nom: nomAppartement,
  };

  try {
    // await等待异步请求完成,拿到响应结果
    const messageRequest = await newAppartement(newAppartementTableau);
    // 此处可以正常使用messageRequest的响应内容
    console.log('请求成功', messageRequest);
  } catch (err) {
    // 捕获请求异常做对应处理
    console.error('请求失败', err);
  }
}

如果你习惯用Promise的then链式调用,也可以用下面的写法:

handleSubmit(event, user,props) {
  event.preventDefault();
  const nomAppartement = event.target.nomAppartement.value;
  const superficieAppartement = event.target.superficieAppartement.value;

  const newAppartementTableau = {
    nom: nomAppartement,
  };

  newAppartement(newAppartementTableau)
    .then(messageRequest => {
      // 拿到响应结果使用
      console.log('请求成功', messageRequest);
    })
    .catch(err => {
      console.error('请求失败', err);
    })
}

内容的提问来源于stack exchange,提问作者cecilecemoi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 11:30:04