Array.map中的Array.map不起作用

时间:2018-05-29 18:05:30

标签: node.js reactjs ecmascript-6

我得到一个从Database返回的对象数组。我想映射那个数组,并且我想要映射另一个数组。但是我收到了一些错误。如果有人知道请帮助解决这个问题。

displayMovies(){
    if(!this.state.body) return ( <h2> Loading.... </h2>)
    else{

        return this.state.body.map((data) => {
            return(
                <div key={data._id}>
                    <li> {data.name} </li>
                    <ul>
                        {
                            return data.map((cast) => {
                                return <li> cast.name </li>
                            })
                        }
                    </ul>
                </div>
            )
        })
    }
}

Data response

2 个答案:

答案 0 :(得分:1)

你不在嵌套循环中的任何函数中,所以你不需要return任何东西 替换

 return data.map((cast) => {

data.map((cast) => {

并在map

cast属性上添加应用data功能
displayMovies(){
    if(!this.state.body) return ( <h2> Loading.... </h2>)
    else{

        return this.state.body.map((data) => {
            return(
                <div key={data._id}>
                    <li> {data.name} </li>
                    <ul>
                        {
                            data.cast.map((cast) => {
                                return <li> {cast.name} </li>
                            })
                        }
                    </ul>
                </div>
            )
        })
    }
}

答案 1 :(得分:0)

您的第一个map函数返回一个Object。对象没有map函数使用for循环,而不是在循环内部,检查属性是否为对象。 用以下内容替换第二个地图:

for (const key in object) {
  if (object.hasOwnProperty(key) && typeof(object[key]=='object') {
    // do something with object[key].name 
  }
}