我试图从React调用一个API,但它一直以未定义的方式返回。这是我的代码:
import React from 'react';
export default class UserList extends React.Component {
constructor(props) {
super(props);
this.state = { customer: [] };
}
componentDidMount() {
fetch('https://recommenderapi.herokuapp.com/customer_id=x', {
mode: 'no-cors',
method: "post",
headers: {
"Content-Type": "application/json"
}
}).then(({ results }) => this.setState({ customer: results }));
}
render() {
console.log(this.state.customer)
const customers = this.state.customer.map((item, i) => (
<div>
<h1>{item.customer_id}</h1>
<h1>{item.prediction}</h1>
</div>
));
return (
<div id="layout-content" className="layout-content-wrapper">
<div className="panel-list">{customers}</div>
</div>
);
}
}
当我运行它时,console.log()返回未定义的,这意味着我得到的错误TypeError: Cannot read属性'map'的未定义的
。我不太确定如何解决这个问题,所以任何帮助都将不胜感激!谢谢。
编辑:这是API在您转到以下链接时返回的内容:{“prediction”:[“Roam in Rome”,“”]}
我认为它必须与您指定的模式:no-cors
有关。MDN留档说它阻止发送应用程序/json标头。尝试将其更改为"cors"
您没有读取响应的主体并解析JSON;相反,您试图在响应
对象上使用一个结果
属性,该属性没有。
要读取响应正文,需要使用方法json()
,text()
,blob()
,以及类似的方法。您可能正在发回JSON,因此需要JSON()
。您还需要首先检查ok
标志,因为如果请求因404或500 HTTP错误而失败,fetch
将实现promise,但结果可能不是JSON。最后,您应该处理/报告fetch
中的错误:
fetch('https://recommenderapi.herokuapp.com/customer_id=x', {
mode: 'no-cors',
method: "post",
headers: {
"Content-Type": "application/json"
}
})
.then(response => {
// *** Check for HTTP success
if (!response.ok) {
throw new Error(`HTTP error ${response.status}`);
}
// *** Read the body, parse it as JSON
return response.json();
})
.then(({ results }) => this.setState({ customer: results }))
.catch(error => {
// ...*** handle/report error...
});
我对ReactJS很陌生。目前正在使用EXPO.IO开发ReactJS原生移动应用程序。在我的项目中,我正在使用webView来显示内容。工作很好。但是当我试图实现goBack()时遇到了一个问题。 我所遵循的示例:https://blog.defining.tech/adding-a-back-button-for-react-native-webview-4a6fa9cd0b0 由于this.
首先,我是在laravel中使用ajax的初学者。我试图通过警报或控制台检查输入字段是否正常工作。日志返回未定义。 我的刀片文件代码 我的控制器文件代码。。尽管其注释的公共函数存储(Request$Request){//Tag::create([ 网状物php/** 标签控制器*/ 路由::资源('tag','App\Http\Controllers\TagController'); 路由::po
我正在尝试为discord bot执行命令,它从MySQL表中输出整数。 我尝试使用async/await、Promissions和回调来实现这一点,但结果总是一样的。在这里,我用promise再次尝试,因为在过去它不知何故起了作用。现在不会了。 下面是返回promise的函数: 下面的代码将结果赋值给Access Level变量: Catch函数捕获表示“TypeError:无法读取未定义的属性
我在node.js中编译代码时出现了这个错误,我该如何修复它呢? RefernceError:未定义fetch 这就是我正在做的函数,它负责从特定的电影数据库中恢复信息。
我之前问过这个问题,它与这个问题相关(如何从异步调用返回响应?),但它并没有解决我的问题 我是node.js的新手,我遇到了一些我无法处理的错误,或者找不到任何我理解的帮助。我使用express generator初始化应用程序。我试图通过一个api调用将我得到的对象发送到前端。我编写了一个类“StockClass.js”,其中包含一个函数makeApiCall(),该函数进行调用并返回对象。但当
问题内容: 因此,当我打开灯箱时,我试图禁止在页面上滚动,而我发现这个确实有用的脚本非常有用。不幸的是,当我在自己的页面上使用它时,它也禁止在灯箱中滚动。我开始用警报调试代码,只是发现该事件。wheelDelta在我的页面上返回“undefined”,而在JSFiddle中,它返回-120。 问题答案: jQuery事件处理程序中的对象不能反映真实事件。是IE和Opera的非标准事件属性,可通过j