使用ReactJS和concat JSX语法进行渲染时的map函数循环

时间:2015-11-22 13:58:29

标签: javascript loops reactjs react-jsx

非常简单的问题,当我在渲染时使用.map函数进行反应时,我循环遍历数组,例如:

render() {
        let board = this.props.board;

        return (
            <div>
                 {
                   board.map((piece,index) => {
                       return (
                           <Piece data={piece}/>
                       );
                   })
                 }
            </div>
        );
    }

我正在尝试每5件添加一个断行,以便(index % 5 == 0)<br />之前添加<Piece /> 当我尝试与+结合或做这样的事情时:

board.map((piece,index) => {
      return (
                (index % 5 == 0) ? <br /> : ''
                <Piece data={piece}/>
             );
})

我得到的是[Object object]

矩阵的输出

1 个答案:

答案 0 :(得分:8)

如果条件成立则返回[ <br />, <Piece> ]数组,否则返回Piece组件。 See the fiddle.

相关的代码是:

return <div>{items.map(function (i, index) {
    if (index % 5 === 0) {
        return [ <br key={index + "break"} />, <Item key={index} num={i} /> ];
    }

    return <Item key={index} num={i} />;
})}</div>;

此外,将key放在从map返回的组件或其他返回类似数组的实例的方法上。这样,React不需要取出所有生成的组件并在每次渲染时替换它们,但可以在键下找到它们并更新它们的属性。查看React文档中的Reconciliation以了解详情。