React.js-无法读取未定义的属性“map”
2017-06-09
2327
当组件安装时,我正在发出一个 ajax 请求,该请求返回一个带有对象数组的对象。
getPages() {
getAllPagesData().then((pages) => {
let data = pages
this.setState({ pages });
});
}
在此函数中,我可以有效地访问数据。
console.log(pages.pages[0].description)
打印正确的页面描述。
在渲染中,我将状态设置为变量以在返回中访问:
render() {
const pages = this.state.pages.pages
console.log(pages)
return (
chrome 中的 console.log 是:
(55) [Object, Object, Object, Object,...
然后我尝试使用 map 遍历数组:
return (
<div>
<Nav />
{ pages.map((post, index) => (
它破坏了页面,错误是:
无法读取 Pages.render 中未定义的属性“map”
我尝试了许多不同的方法来访问此对象,其中的数组,但无法获取单个数组项以显示在渲染函数内部。
1个回答
尝试在 render 方法中使用这一行
const pages = this.state.pages.pages || [ ]
这很可能是因为
render
方法在 ajax 请求完成之前被调用。因此
this.state.pages.pages
最初是
undefined
。
JiN
2017-06-09