axios.post()。then()未将已解析的数据传递给回调函数

时间:2019-10-16 23:52:40

标签: javascript reactjs axios

当我使用axios.post(...).then(data=>callback(data))时,在回调中访问数据时未定义数据,但是,访问数据之前的控制台日志将显示所有数据。

我尝试了所有可能的异步等待组合。我觉得这是一个比我做的简单的问题。

// passed in as successCallback
const handleCreationCompleted = data => {
    console.log(data)

    // Error below ReturnedDataObject not defined
    var object = data.ReturnedDataObject

}

const createObject = async (variables, successCallback, errorCallback) => {
    ...
    await axios.post(url, form_data, {
        headers: {
    ...
        },
    }).then(res => {
        successCallback(res)
    })
    .catch((err) => {
        errorCallback(err)
    })

我应该能够访问数据,它是成功回调中的一个json对象(它是从graphql api获取的)

1 个答案:

答案 0 :(得分:2)

您将awaitthen()一起使用。您应该切换到一个。如果使用等待,则将结果分配给变量。您还应该传回响应的数据,而不是响应本身。

const response = await axios.post(...)
callback(response.data)

如果您想使用then,则为:

axios.post(...)
.then(respone => callback(response.data))