在react

时间:2018-09-25 12:03:43

标签: javascript reactjs babeljs webpack-dev-server

我正在学习反应。我想在一个容器中创建8个相同的元素。

以下是我的代码

class Card extends React.Component{
    render(){
        return(
          <div className="card">
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. </p>
          </div>
        )
    }
}

容器组件如下。

class Cardholder extends React.Component{
    render(){
        const cards = new Array(9).map((e,i)=> <Card key={i}/>);
        return(
            <div>
                {cards}
            </div>
        );
    }
}

export default Cardholder;

两个组件都在同一文件中。组件未渲染。没有错误。浏览器控制台中显示的消息如下。

  

[日志] [HMR]等待来自WDS的更新信号...

     

[信息] [WDS]热模块更换已启用。

当我给数组为

new Array(9).fill(<Card/>) 

有效。但是由于没有为元素指定键值,因此出现“键”错误。

2 个答案:

答案 0 :(得分:2)

new Array(9) //produce 9 undefined

仅对已分配值的数组索引调用回调

new Array(9).fill(null).map((e,i)=> <Card key={i}/>);

答案 1 :(得分:1)

对于空数组,它将返回一个空数组而不是索引。我认为这是问题所在。

arr.map((e,i) => i)

所以您应该尝试

var arr = new Array(9).fill(0)

然后它将起作用。

由于空数组映射也返回了空数组,因此未呈现任何内容。