代码之家  ›  专栏  ›  技术社区  ›  Omar

如何使用地图传递道具

  •  1
  • Omar  · 技术社区  · 8 年前

    我试图理解如何使用map函数传递道具。我在renderFruits函数中传递水果类型,在水果子组件中渲染水果类型。我不明白这个代码有什么问题。

    import React, { Component } from 'react';
    import { render } from 'react-dom';
    import Fruits from'./Fruits';
    
    class App extends Component {
      constructor(props) {
        super(props); 
        this.state = {
          fruits: [
            {
              type:'apple',
            },
            {
              type:'tomato',
            }
          ]
        };
      }
    renderFruits = () => {
      const { fruits } = this.state;
        return fruits.map(item =>
          <Fruits
              type={item.type}
           />
            );
      }
      render() { 
        return (
          <div>
              {this.renderFruits}
          </div>
        );
      }
    }
    render(<App />, document.getElementById('root'));
    

    class Fruits extends Component {  
      render() {
        const { type } = this.props;
        return(
          <div>
            {type}
          </div>
        );
      }
    }   
    export default Fruits;
    
    1 回复  |  直到 8 年前
        1
  •  3
  •   Slawa Eremin    8 年前

    你的代码中有两个问题
    -您应该在渲染函数中调用renderFruits:this。渲染结果()
    -当您尝试渲染阵列时,应使用“键”

    renderFruits = () => {
       const { fruits } = this.state;
       return fruits.map( (item, index) =>
          <Fruits
              key={index}
              type={item.type}
          />
       );
      }
      render() { 
        return (
          <div>
              {this.renderFruits()}
          </div>
        );
      }