axios:未处理的拒绝(TypeError):无法读取未定义的属性“错误”

时间:2020-06-14 20:53:09

标签: javascript reactjs axios

我正在尝试使用axios发出POST请求。以下是我的axios函数在一个名为userFunctions.js的文件中。

export const savePost = (postInfo) => {
    return axios
        .post(
            "admin/savepost",
            { first_name: "hello", last_name: "world" },
            {
                headers: {
                    Authorization: `Bearer ${localStorage.usertoken}`,
                },
            }
        )
        .then((response) => {
            console.log(response); //response is able to get printed here
            console.log("axios:: saved post");
        });
};

我在另一个名为card.js的文件中调用此文件,如下所示:

handleChange(e) {
        e.preventDefault();
        const { name, type, checked } = e.target;
        if (type === "checkbox") {
            this.setState({
                [name]: checked,
            });
            savePost("post 1").then((res) => {
                //response is undefined here!
                console.log(res === undefined); //true

                if (!res.error) {
                    console.log("client: post saved");
                }
            });
        }
    }

我收到以下错误:

未处理的拒绝(TypeError):无法读取的属性“错误” 未定义

我不明白为什么可以在userFunctions.js中打印响应,但是当我在card.js中调用savePost变量时却未定义

1 个答案:

答案 0 :(得分:0)

之所以发生这种情况,是因为您在userFunctions.js中处理了响应并且没有将其返回(即,诺言链中的最后then返回未定义)。 进行以下更改:

    .then((response) => {
        console.log(response); //response is able to get printed here
        console.log("axios:: saved post");
        return response
    });