在反应中迭代另一个列表

时间:2019-03-15 22:03:57

标签: javascript reactjs

我对JavaScript和JavaScript还是很陌生,我想知道如何在另一个列表中迭代一个列表。

我有这个json变量:

this.state = {
            groups: [{
                name: '',
                permission: [{
                    name: ''
                }]
            }]
        }

我想做的是计算第二个列表中包含的元素数,我执行了以下代码,但是它发送了以下错误, groups.map不是函数

render(){

    let permissionGroup = this.state.groups.map((groups) => {
        let x = 0;
        groups.map((permission) => {
            x++;
        })
    })


    return (
              <div>

                    {this.state.groups.map((groups) => {
                    return (<li key={groups.code}>
                        <Card style={{ width: '20rem' }}>
                            <Card.Body>
                                <Card.Title>{groups.name}</Card.Title>
                                <Card.Subtitle className="mb-2 text- enter code heremuted">Permissions info</Card.Subtitle>
                                <Card.Text>
                                    This group has {permissionGroup}  permissions in it.
                             </Card.Text>
                                <Card.Link href="#">Add Permission</Card.Link>
                                <Card.Link href="#">Remove Permission</Card.Link>
                            </Card.Body>
                        </Card>
                    </li>)

                })}


              </div>

1 个答案:

答案 0 :(得分:0)

在您的第一个地图内,它应该是groups.permission.map,而不是groups.map。

UNAVAILABLE

那是因为您的第一张地图将每个“组”定义为:

    let permissionGroup = this.state.groups.map((groups) => {
        let x = 0;
        groups.permission.map((permission) => {

所以{name: '', permission: [{name: ''}]} 在这个意义上是一个对象,而不是数组。访问groups进入所需的数组。