Javascript 在React组件中解析JSON
我正在用React做我的第一个实验,试图通过我也编写的API(使用Django REST框架)使用和显示一些数据 我看到对象在控制台中填充,但它们不会在页面上呈现。我还在控制台中看到一个错误: 未捕获(承诺中)TypeError:无法读取未定义的属性“length” 这是指我的变更列表组件中的第18行:Javascript 在React组件中解析JSON,javascript,reactjs,Javascript,Reactjs,我正在用React做我的第一个实验,试图通过我也编写的API(使用Django REST框架)使用和显示一些数据 我看到对象在控制台中填充,但它们不会在页面上呈现。我还在控制台中看到一个错误: 未捕获(承诺中)TypeError:无法读取未定义的属性“length” 这是指我的变更列表组件中的第18行: 从“React”导入React; 类变更列表扩展了React.Component{ 构造函数(){ 超级(); this.state={items:[]}; } componentDidMou
从“React”导入React;
类变更列表扩展了React.Component{
构造函数(){
超级();
this.state={items:[]};
}
componentDidMount(){
取回(`http://127.0.0.1:8000/backup/changes/1/Lead.json`)
.then(result=>result.json())
.then(items=>console.log(items))
.then(items=>this.setState({items}))
}
render(){
返回(
{this.state.items.length?
this.state.items.map(item=>- {item}
)
:- 正在加载
}
)
}
}
导出默认更改列表
您的问题是
。然后(items=>console.log(items))
,因为console.log()
返回未定义的
当返回undefined
时,此行。然后(items=>this.setState({items}))
将状态设置为{items:undefined}
,并且this.state.items
没有长度属性
只需删除console.log()
语句或将其更改为:
.then(items=> { console.log(items); return items; })
谢谢,我按照您的建议删除了console.log()语句,但仍然没有在浏览器中呈现任何内容。此外,没有输出到控制台。如果我添加回带有您建议的更改的console.log()语句(.then(items=>{console.log(items);return items;})),对象将被记录到控制台中,并且控制台中没有错误(只有JSON对象),但UI中仍然没有呈现任何内容。呈现中的console.log(this.state)显示了什么?我添加了console.log(this.state)添加到render函数(不确定我是否正确执行了此操作?),现在我看到了以下内容:在日志中,您可以看到数据位于items.results
。在代码中进行此更改。然后(items=>this.setState({items}))
-->然后({results}=>this.setState({items:results}))啊-成功了!我以前曾尝试以items.results和items['results']的形式访问,但显然失败了。感谢您的帮助!对于其他跟随者,以下是最终代码: