Javascript 在React组件中解析JSON

Javascript 在React组件中解析JSON,javascript,reactjs,Javascript,Reactjs,我正在用React做我的第一个实验,试图通过我也编写的API(使用Django REST框架)使用和显示一些数据 我看到对象在控制台中填充,但它们不会在页面上呈现。我还在控制台中看到一个错误: 未捕获(承诺中)TypeError:无法读取未定义的属性“length” 这是指我的变更列表组件中的第18行: 从“React”导入React; 类变更列表扩展了React.Component{ 构造函数(){ 超级(); this.state={items:[]}; } componentDidMou

我正在用React做我的第一个实验,试图通过我也编写的API(使用Django REST框架)使用和显示一些数据

我看到对象在控制台中填充,但它们不会在页面上呈现。我还在控制台中看到一个错误:

未捕获(承诺中)TypeError:无法读取未定义的属性“length”

这是指我的变更列表组件中的第18行:

从“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']的形式访问,但显然失败了。感谢您的帮助!对于其他跟随者,以下是最终代码: