首页 > 解决方案 > 地图中的问题映射 - React Native

问题描述

我正在制作的应用程序开发了以下数组格式来存储用户输入:

[
  {name: Bob,
   id: 1,
   sports: [{sport: Baseball,
             id: 1
            },
            {sport: Basketball,
             id: 2
            }]
  },
  {name: James,
   id: 2,
   sports: [{sport: Hockey,
             id: 3
            },
            {sport: Soccer,
             id: 4
            }]
  }
]

我正在尝试渲染它以有效地获得以下输出:

<Text>Bob</Text>
<Text>Baseball</Text>
<Text>Basketball</Text>

<Text>James</Text>
<Text>Hockey</Text>
<Text>Soccer</Text>

我想我可以通过在地图中映射来实现这一点,例如:

{Array.map((item) => {
  return(
    <Text>{item.name}</Text>
    {item.sports.map((item2) => {
      return(
        <Text>{item2.sport}</Text>
      )
    })
  )
})}

但不能让这样的事情起作用。我可以 console.log 我想要的结果:

    const display = Array.map(item => {
        return console.log(item.name, item.sports.map(item2 => {
            return item2.sport}))
        })

但我想我不知道如何渲染出来?

标签: arraysreactjsreact-nativeobjectmapping

解决方案


您的代码中有很多错误,或者是响应者的忽视。

const userInput = [
  {
    name: "Bob",
    id: 1,
    sports: [
      { sport: "Baseball", id: 1 },
      { sport: "Basketball", id: 2 },
    ],
  },
  {
    name: "James",
    id: 2,
    sports: [
      { sport: "Hockey", id: 3 },
      { sport: "Soccer", id: 4 },
    ],
  },
];

{userInput.map((user) => (
  <>
    <Text>{user.name}</Text>
    {user.sports.map((s) => (
      <Text>{s.sport}</Text>
    ))}
  </>
))}

推荐阅读