Javascript 我试图映射数据库中的数据,并得到这个错误。TypeError:无法读取属性';地图';未定义的
我试图从数据库映射数据,并得到这个错误。 TypeError:无法读取未定义的属性“map”Javascript 我试图映射数据库中的数据,并得到这个错误。TypeError:无法读取属性';地图';未定义的,javascript,reactjs,Javascript,Reactjs,我试图从数据库映射数据,并得到这个错误。 TypeError:无法读取未定义的属性“map” import React from "react"; export default class Allusers extends React.Component { state = { people: [], }; async componentDidMount() { const ur
import React from "react";
export default class Allusers extends React.Component {
state = {
people: [],
};
async componentDidMount() {
const url = "http://localhost:5000/dashboard/getuser";
const response = await fetch(url);
const data = await response.json();
console.log(data);
this.setState({ people: data.results });
}
render() {
//const peopleJSX = [];
//this.state.people.forEach((person) => {
//peopleJSX.push(
//<div key={person.id}>
//<div>{person.firstname}</div>
//<div>{person.lasttname}</div>
//</div>
//);
//});
return (
<div>
{this.state.people.map((person) => (
<div key={person.id}>
<div>{person.firstname}</div>
<div>{person.lasttname}</div>
</div>
))}
</div>
);
}
}
从“React”导入React;
导出默认类Allusers扩展React.Component{
状态={
人员:[],
};
异步组件didmount(){
常量url=”http://localhost:5000/dashboard/getuser";
const response=等待获取(url);
const data=wait response.json();
控制台日志(数据);
this.setState({people:data.results});
}
render(){
//constpeoplejsx=[];
//this.state.people.forEach((person)=>{
//peopleJSX.push(
//
//{person.firstname}
//{person.lasttname}
//
//);
//});
返回(
{this.state.people.map((person)=>(
{person.firstname}
{person.lasttname}
))}
);
}
}
仅供参考,我的API正在运行,我已经在Postman上进行了测试
您需要将状态放入类的构造函数中,如下例所示:
class Clock extends React.Component {
constructor(props) {
super(props);
this.state = {date: new Date()};
}
render() {
return (
<div>
<h1>Hello, world!</h1>
<h2>It is {this.state.date.toLocaleTimeString()}.</h2>
</div>
);
}
}
类时钟扩展React.Component{
建造师(道具){
超级(道具);
this.state={date:new date()};
}
render(){
返回(
你好,世界!
它是{this.state.date.toLocaleTimeString()}。
);
}
}
代码来自此示例:。
现在您只有一个名为state的变量,它没有绑定到类。上面的代码中有更正。 而不是:
this.setState({people:data.results});
使用:
this.setState({people:data.gigs});
因为GIG是存储数据的对象的键。您在console.log中看到正确的值了吗?请发布
数据的输出<代码>数据。结果
似乎是未定义的
@Brianthonpson我可以在控制台中查看所需的数据。@GuruparanGiritharan是的,我可以在控制台中看到正确的值。log@ShreyasAnilChaudhari您包含的屏幕截图显示了代码不同部分中的错误(完全不同的组件)而不是你在问题中提到的那个。此外,控制台中显示的数据与代码预期的数据不符。这可能是更好的做法,如果使用道具初始化状态,则需要这样做,但是不需要将它放入构造函数中,它才能工作。另外,现在您只有一个名为state的变量,并且它没有绑定到类,这条语句是不正确的<代码>状态
是一个类属性,按照它们的定义方式。