javascript - React 循环遍历数组并渲染多个子组件的实例

标签 javascript reactjs

我正在尝试迭代数组并将字段分配给相应的子组件。 我目前的做法如下:

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

定义并导入子组件后,我会将这些类的新实例推送到一个全新的数组中:

class CardContainer extends React.Component {   
    render() {
        var arr = [
                {
                    'id':1,
                    'title':'title',
                    'value':'test_value'
                }
            ]
        var elements=[];
        for(var i=0;i<arr.length;i++){

            elements.push(<Card title={ arr[i].value } />);
            elements.push(<CardExtension value={ arr[i].title } />);
        }
        return (
            <div> 
            {elements}
            </div>
        );
    }
}

有没有办法使用以下格式来完成相同的任务

class CardContainer extends React.Component {   
    render() {

        var arr = [
            {
                'id':1,
                'title':'title',
                'value':'test_value'
            }
        ]
        return (
            <div> 
                {arr.map((el, idx) => (
                    <Card title={ el.value } />
                    <CardExtension value={ el.title } />
                ))}
            </div>
        );
    }
}

@更新 问题是,每当我使用最新的解决方案时,我都会收到以下错误消息:相邻的 JSX 元素必须包含在封闭标签中 (39:24)

最佳答案

工作解决方案:

import React, { Component, Fragment } from 'react';

export default class CardContainer extends React.Component {   
    render() {

        var arr = [
            {
                'id':1,
                'title':'title',
                'value':'test_value'
            }
        ]

        return (
            <div> 
                {arr.map((el, idx) => (
                    <Fragment>
                        <Card title={ el.value } />
                        <CardExtension value={ el.title } />
                    </Fragment>
                ))}
            </div>
        );
    }
}

关于javascript - React 循环遍历数组并渲染多个子组件的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60691979/

相关文章:

javascript - Reactjs 没有在子进程中调用 onChange 回调

CSS 最小高度在 Firefox 中不起作用

javascript - React - 从其他链接导航到部分

css - react-jss 不缓存 css 类

javascript - VUEJS动态绑定(bind)图片url

javascript - 如何使用函数的参数来使用对象的数据?

javascript - 单击 img AngularJS 后更新模型

javascript - jquery插件公共(public)函数

javascript - Jest 基础 : Testing function from component

javascript - React/Redux 开发应该是面向对象编程还是函数式编程?