Taro云开发调用云函数时,为什么返回的data总是undefined?

慕容艺茹 阅读 32

在用Taro做小程序开发时,我通过云开发调用云函数获取数据库数据,但返回的data字段一直是undefined。已经确认云函数能正常执行,控制台也显示有返回值,但页面就是显示不出来。

这是我的调用代码:


useEffect(() => {
  Taro.cloud.callFunction({
    name: 'getArticles',
    data: {}
  }).then(res => {
    console.log(res); // 这里显示data在result里
    setArticles(res.data); // 这里赋值失败
  });
}, []);

我试过把setArticles改为res.result.data就能拿到数据,但按照官方文档写法应该用res.data才对啊。是不是哪里配置错了?或者Taro的云函数返回格式有特殊要求?

我来解答 赞 8 收藏
二维码
手机扫码查看
1 条解答
Newb.羽霏
Taro云开发返回的data结构和微信原生不同,云函数返回值会包裹在result里。直接改用res.result.data就行,官方文档是按微信原生写的。

useEffect(() => {
Taro.cloud.callFunction({
name: 'getArticles',
data: {}
}).then(res => {
setArticles(res.result.data);
});
}, []);
点赞 5
2026-02-05 15:00