开发者问题收集

Axios 请求未返回承诺/未捕获的 TypeError:无法读取未定义的属性(读取“then”)

2023-01-07
302

我有一个使用这行代码从 axios 创建的 api 对象。

const api = axios.create({ baseURL: 'http://localhost:3006' });

然后我使用这行代码导出此调用...

export const editPost = (id, post) => {
  api(`/posts/${id}`, { method: 'put', data: post });
};

但是,在我使用该调用的文件中,当我尝试在其上使用 .then 方法时,我收到一条错误消息

index.js:25 Uncaught TypeError: Cannot read properties of undefined (reading 'then')

这是导出的用法

  const editThisPost = (authorName, category, blogText) => {
    editPost(id, { authorName, category, blogText }).then(res => {
      setPost(res);
      setEditing(false);
    });
  };

做了一些研究,这意味着我的导出没有返回承诺。有人知道如何解决这个问题吗?

1个回答

您的 editPost 方法未返回 Promise 来调用 .then

您应该更新它以返回承诺:

export const editPost = (id, post) => {
    return api(`/posts/${id}`, { method: 'put', data: post });
};
mpu
2023-01-07