作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
创建我的第一个 ReactJS 网站并在后端使用 Node,目前在接下来的代码中我获取数据,然后在页面上打印。我设法从服务器打印项目中人员的姓名、他们的照片和电子邮件,但我收到错误的项目描述:
TypeError: Cannot read property '0' of undefined
我不明白。
这是代码:
class ProjectPage extends Component {
constructor(props) {
super(props);
this.state = {
user: [],
description: [],
mail: [],
name: [],
};
this.getNames = this.getNames.bind(this);
this.getPictures = this.getPictures.bind(this);
this.getMails = this.getMails.bind(this);
this.getDetails = this.getDetails.bind(this);
}
我创建了类和所有需要的元素
componentDidMount() {
console.log("BEGIN componentDidMount");
this.fetchDetails();
this.fetchNames();
this.fetchMails();
console.log("END componentDidMount");
}
调用我的componentDidMount()中的所有函数
fetchDetails() {
console.log("BEGIN fetchDetails()");
let url = 'http://192.168.1.33:8080/getprojectdetails/Aprite';
console.log("url details = " + url);
fetch(url)
.then(results => {
var json = results.json();
return json;
})
.then(data => {
this.setState({ description: data });
})
console.log("END fetchData()");
}
这是项目描述的获取
getDetails = () => {
let lines = [];
let nbr = this.state.description.length;
console.log("nbr = " + nbr);
if (nbr){
console.log("lines = " + this.state.description[0].P_Description);
for (let i = 0; i < nbr; i++)
lines.push(<div key={this.state.descripton[i].P_Description}></div>);
}
return (lines);
}
以及Render()函数中打印数据的函数
但是当我尝试打印这些数据时,nbr 的值从 0 变为 1,然后再次变为 0...在控制台日志中我可以看到描述,但它没有出现在网站上,而且我没有没明白。
请帮帮我?
最佳答案
getDetails 函数内部循环存在拼写错误
您应该编写 this.state.description
而不是 this.state.descripton
希望这能解决您的问题:)
关于javascript - 不明白 Uncaught Typeerror Cannot Read Property of 0 Undefined?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54679426/
我是一名优秀的程序员,十分优秀!