javascript – React迭代并根据数组的数量插入组件

前端之家收集整理的这篇文章主要介绍了javascript – React迭代并根据数组的数量插入组件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以说我有一个阵列
var arr=["one","two","three","four"];

我有一个组件
CardContainer

class CardContainer extends React.Component {   
    render() { 
        return (
            <div> 
            <Card/>
            </div>
        );
    }
}

我想要做的是
根据数组“arr”的长度/数量创建一些Card组件,
并且
从数组中设置Card组件中div的文本.

class Card extends React.Component {   
    render() {
        return (
            <div> 
           <!--Print arr[i] val using this.props? -->
            </div>
        );
    }
}

所以我的输出将是4张卡,
每张卡上单独打印的数组值.

这是我提出的不成功的

class CardContainer extends React.Component {   
    render() {
        var arr=["one","four"];
        var elements=[];
        for(var i=0;i<arr.length;i++){
            elements.push(<Card value=arr[i]/>);
        }
        return (
            <div> 
            {elements}
            </div>
        );
    }
}

解决方法

你很接近,只是忘了用卡片填充元素数组,所以在循环结束后它仍然是空的.虽然使用map作为其他人建议是在React中最常用的方法,但它仍然只是生成一个组件数组,这些组件也可以使用for循环生成

https://jsfiddle.net/mn0jy5v5/

class Card extends React.Component {   
    render() {
        return (
            <div> 
            { this.props.value }
            </div>
        );
    }
}

class CardContainer extends React.Component {   
    render() {
        var arr=["one","four"];
        var elements=[];
        for(var i=0;i<arr.length;i++){
             // push the component to elements!
            elements.push(<Card value={ arr[i] } />);
        }
        /* the for loop above is essentially the same as
        elements = arr.map( item => <Card value={ item } /> );
        The result is an array of four Card components. */
        return (
            <div> 
            {elements}
            </div>
        );
    }
}

猜你在找的JavaScript相关文章