代码之家  ›  专栏  ›  技术社区  ›  Josh Simon

将数据映射到一个CSS网格中-如何为每个网格正方形返回一个元素?

  •  0
  • Josh Simon  · 技术社区  · 4 年前

    假设我正在构建一个包含三个网格项的CSS网格,作为react项目中的一个组件。我希望在每个网格正方形中显示数据,这些数据来自以下数组:

    const applicants = [
    
      {name: 'James',
       age: 35,
       experience: 'none'
      },
      {name: 'Kate',
       age: 27,
       experience: 'intermediate'
      },
      {name: 'Henry',
       age: 32,
       experience: 'senior'
      }
    ]
    

    而不是将一个名称映射到每个方块。我该怎么解决这个问题?更多代码如下:

    import React from 'react'
    
    const applicants = [
    
      {name: 'James',
       age: 35,
       experience: 'none'
      },
      {name: 'Kate',
       age: 27,
       experience: 'intermediate'
      },
      {name: 'Henry',
       age: 32,
       experience: 'senior'
      }
    ]
    
    const displayName = () =>{
      return (
        <div>
          {
            applicants.map(item=> {
            return <h1>{item.name}</h1>
          })
          }
        </div>
      )
    }
    
    export default displayName
    
    import React from 'react'
    import displayName from './displayName'
    
    const Grid = () => {
      return(
        <div className = 'grid-container'>
          <div className = 'grid-item'>
            <displayName/>
          </div>
        <div className = 'grid-item'>
            <displayName/>
          </div>
        <div className = 'grid-item'>
            <displayName/>
          </div>
        </div>
      )
    }
    
    
    export default Grid
    
    2 回复  |  直到 4 年前
        1
  •  1
  •   Vishal V Mikko Maunu    4 年前

    应该是另一个方向。请参考以下内容。

    const displayName = props => <h1>{props.name}</h1>
    
    import React from 'react'
    import displayName from './displayName'
    
    const applicants = [
    
      {name: 'James',
       age: 35,
       experience: 'none'
      },
      {name: 'Kate',
       age: 27,
       experience: 'intermediate'
      },
      {name: 'Henry',
       age: 32,
       experience: 'senior'
      }
    ]
    
    const Grid = () => {
      return(
        <div className = 'grid-container'>
          {
            applicants.map(item=> {
              return (<div className = 'grid-item'>
                       <displayName name={item.name}/>
                     </div>)
            })
          }
          
        </div>
      )
    }
    
        2
  •  3
  •   Derek Williams    4 年前

    不要在你的 displayItem 常量。在网格上执行,并将其用作功能组件。把你的阵法传给一个道具 Grid map

    import React from 'react'
    import displayName from './displayName'
    
    const Grid = (props) => {
      return(
          <div className = 'grid-container'>
          { props.data.map((d, i) => (
             <div className = 'grid-item'>
                <displayName name={d.name} />
             </div>
           )}
          </div>
       )
    }
    
    
    export default Grid
    

    这样做可能会解决你的问题。

    div 迪夫