reactjs 使用父组件的子组件Map数组以引用对象属性(NextJS / React)

k5hmc34c  于 2022-12-22  发布在  React
关注(0)|答案(1)|浏览(152)

我遇到了一个似乎无法解决的小问题。我试图使用父组件的子组件中的JSX元素Map一个数组,但不知道如何正确使用父组件中的“item”。我的想法是创建一个动态子组件,这样我就可以发送不同样式的子组件,这些子组件可以利用子组件中的item属性:

export default function Parent() {
  <Child array={[ { name: 'Spencer' }, { name: 'Jimmy' }, { name: 'Frank' } ]}>
    <div>{item.name}</div>
  </Child>

  <h1>Another example of sending different children to the Child component</h1>
  <Child array={[ { name: 'Spencer' }, { name: 'Jimmy' }, { name: 'Frank' } ]}>
    <h1>{item.name}</h1>
    <p>Name of player</p>
  </Child>
}

export default function Child({array, children}) {
  return (
    <div>
      {array.map((item) => {
        {children}
      })}
    </div>
  )
}

我试着从父组件的map属性引用该项,但显然不起作用。

mwyxok5s

mwyxok5s1#

使用Parent内部的函数,在Child中Map时将item传递给该函数。

function Parent() {
  return (
  <Child array={[{ name: 'Spencer' }, { name: 'Jimmy' }, { name: 'Frank' }]}>
    {(item) => <div>{item.name}</div>}
  </Child>
  )
}

function Child({array, children}) {
  return (
    <div>
      {array.map((item) => children(item))}
    </div>
  )
}  

ReactDOM.render(<Parent/>, app)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>

<div id="app"></div>

相关问题