Arrays 将嵌套数组对象值呈现到JSX元素中
我有一个嵌套的对象数组,看起来像这样:Arrays 将嵌套数组对象值呈现到JSX元素中,arrays,reactjs,object,methods,jsx,Arrays,Reactjs,Object,Methods,Jsx,我有一个嵌套的对象数组,看起来像这样: [ { _Category: "Animals", _Child: { _Obj: [{_Title: "Monkey", _Link: "www.monkeys.com"}], [{_Title: "Monkey", _Link: "www.monkeys.com"}], etc } }, { _C
[
{
_Category: "Animals",
_Child: {
_Obj: [{_Title: "Monkey", _Link: "www.monkeys.com"}], [{_Title: "Monkey", _Link: "www.monkeys.com"}], etc
}
},
{
_Category: "Fruit",
_Child: {
_Obj: [{_Title: "Apple", _Link: "www.apples.com"}], [{_Title: "Pineapple", _Link: "www.pineapples.com"}], etc
}
}
]
我试图将每个组的\u Title
和\u Link
附加到JSX元素中。我可以毫无问题地渲染\u类别
,但是嵌套的值让我很难处理
当我转到DevTools中的元素时,我可以看到每个项目有11个不同的组——这就是在特定类别下有多少个对象数组——但是\u标题和\u链接是空的
在下面的代码中,我映射了\u Category
数据,并以这种方式显示了类别。我必须为\u子对象做类似的事情吗?
对象可能是另一个映射,或者其他什么
代码:
Element = ({ cats }) => {
return (
<div>
{cats
.filter((cat) => cat._Root === "Quick Links")
.map((cat) => (
<>
<div className={"colFor-" + cat._Category}>
<h5>{cat._Category}</h5>
{cat._Child._Obj.map((item) => (
<>
<a href={item._Link}>
<p>{item._Title}</p>
</a>
<br />
</>
))}
</div>
</>
))
}
</div>
)
}
Element=({cats})=>{
返回(
{猫
.filter((cat)=>cat.\u Root==“快速链接”)
.map((cat)=>(
{cat._Category}
{cat.\u Child.\u Obj.map((项目)=>(
))}
))
}
)
}
下面是猫的样子:
更新:正如@Dominik所指出的,我的obj设置方式不正确,所以我对其进行了更改。根据您的示例数据,cat.\u Child.\u obj是一个数组,其中的每个项目也是一个数组,因此我认为您需要首先平放数组,然后使用map函数
const myarr=[{{u Title:“Monkey1”,链接:“www.Monkey1.com”}],{{u Title:“Monkey2”,链接:“www.Monkey1.com”}];
常量myarrFlat=myarr.flat();
myarrFlat.map(cat=>console.log(cat.\u标题,cat.\u链接))
你是说\u Obj
里面的\u Child
可能是一个数组吗?您添加JSON的方式无效。@Dominik您是对的,它是一个数组。当我转到DevTools中的元素时,我现在可以看到每个项目有11个不同的组——这是该特定类别下有多少个对象数组——但是\u Titles
和\u Links
div是空的。嘿@Eric,我将数组展平并进行了一些修补,我能够得到数据来显示。我在\u Child
之后运行flat()
,然后返回元素——值得注意的是,我调整了我的\u Child
obj的创建方式,并删除了中间人。换句话说,我不再需要做猫、小孩、Obj等等<代码>{cat.\u Child.flat().map((项)=>{return(