Uncaught TypeError: Cannot read property 'length' of undefined
来源:14-5 PC端首页模块布局开发(中)
慕的地3571103
2017-11-20
老师您好!我的代码是这样的:
constructor() {
super();
this.state = {
projectNumber: ''
};
}
componentWillMount() {
var myFetchOptions = {
method: 'GET'
};
fetch("。。。。。",myFetchOptions)
.then(response => response.json())
.then(json => this.setState({projectNumber: json}));
};
render(){
console.log(this.state);
console.log(this.state.projectNumber.dataList.length)
然后我从后台获取到的json格式格式是这样的;
{
"errcode": 0,
"dataList": [
{
"id": 1,
"pro_num": "0-不涉及"
},
{
"id": 2,
"pro_num": "1008"
},
{
"id": 3,
"pro_num": "1019"
},
{
"id": 4,
"pro_num": "1079"
},
{
"id": 5,
"pro_num":
但是想要获取dataList的length会报错???
3回答
-
鸿鹄yyn
2018-03-12
constructor(){
super();
this.state={
new:'',
};
}
componentWillMount(){
console.log("1111");
var opts = {
method:"GET"
}
fetch("http://newsapi.gugujiankong.com/Handler.ashx?action=getnews&type=top&count=10",opts)
.then((response) => response.json()) //把response转为json
.then((responseData) => { // 上面的转好的json
this.setState({new:responseData})
//alert(responseData);
console.log(responseData);
})
.catch((error)=> {
message.success('错误了');
})
console.log("1111");
}
render(){
/*
'没有加载到任何新闻';*/
var count =this.state.new.length;
// var count=news.length;
console.log(count);
const newsList =count
? this.state.new.map((newsItem, index) => (
<li key={index}>
<Link to={`details/${newsItem.uniquekey}`} target="_blank">
{newsItem.title}
</Link>
</li>
))
: '没有加载到任何新闻';
return(
<div class="topNewsList">
<Card>
<ul>
{newsList}
</ul>
</Card>
</div>
)
}这是我的解决办法 。你参考一下。。。。。。。。。。
00 -
Parry
2017-11-21
被你搞蒙了,那个属性没有length属性啊,要取长度需要自己计算的。
00 -
Parry
2017-11-21
错误是?是不是前面的对象是空?
022018-03-12
相似问题