在辅助函数中调用axios时无法读取属性“ then”

时间:2018-08-01 18:39:04

标签: reactjs ecmascript-6 axios

我将axios调用分离到另一个名为ApiMethods.js的文件中。

现在,每当我尝试在ApiMethods.js中使用'uploadSpecFile'函数时,都会出现此错误:

  

未捕获的TypeError:无法读取未定义的属性'then'

这是帮助方法:

export function uploadSpecFile(formData, engineId) {
    return
    axios({
        method: 'post',
        url: `/api/engineData/spec-files/${engineId}/files/upload`,
        data: formData,
        config: {
            headers: { 'Content-Type': 'multipart/form-data' }
        }
    })
}

我在这里使用它:

import {  uploadSpecFile } from '/ApiMethods';

// error occurs here  **
uploadSpecFile(bodyFormData, this.props.engineId).then(response => {

        this.setState({
            selectedFile: response.data,
            file: null
        });
    })
    .catch(response => {
    });

我在做错什么吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您要返回undefined,因为axios与return语句不在同一行。

只需将axios请求移至同一行,它将按预期工作。

export function uploadSpecFile(formData, engineId) {
  return axios({
    method: "post",
    url: `/api/engineData/spec-files/${engineId}/files/upload`,
    data: formData,
    config: {
      headers: { "Content-Type": "multipart/form-data" }
    }
  });
}