React项目调用API出现TypeError: _ref is undefined问题求助
解决React中API调用时TypeError: _ref is undefined的问题
兄弟,我一眼就瞅出问题所在了!你的API调用函数里有个很容易忽略的小错误——第一个.then块没有返回response.json()的结果,直接导致第二个.then拿到的是undefined,这时候你尝试解构{data}自然就触发TypeError: _ref is undefined的报错了。
问题根源
JavaScript的.then方法会把当前回调函数的返回值作为下一个.then的输入参数。如果你的回调里没有显式写return,默认就会返回undefined。你现在的代码里,第一个.then只是调用了response.json(),但没把这个Promise对象返回出去,所以第二个.then接收的参数是undefined,解构{data}就相当于从undefined里读取属性,这不报错才怪!
修正后的代码
只需要在第一个.then里加上return,或者用更简洁的箭头函数写法(箭头函数如果只有一行代码可以省略大括号和return):
callDB(){ fetch('http://localhost:4000/lista') // 写法1:显式return .then((response)=>{ return response.json() }) // 写法2:简化箭头函数(更推荐) // .then(response => response.json()) .then(({data})=>{ console.log(data); }) .catch((err)=>{console.log(err);}); }
额外调试建议
为了确保后端返回的结构符合你的预期,建议先在第二个.then里打印完整的返回数据,确认是否真的有data字段:
.then((responseData)=>{ console.log('服务器返回的完整数据:', responseData); console.log('data字段内容:', responseData.data); })
这样能帮你排查是不是后端返回的JSON结构和你预想的不一样,比如后端可能直接返回了数组,而不是包含data属性的对象。
内容的提问来源于stack exchange,提问作者Antonio Gonzalez
相关产品推荐
相关产品推荐

