开发者问题收集

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