加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数组 – React渲染组件数组

发布时间:2020-12-15 16:21:23 所属栏目:百科 来源:网络整理
导读:快问.任何人都知道如何渲染组件数组?试图让开发人员更容易更改特定组件. (它就像一个仪表板). 组件列表文件 import React from 'react';export default [ ComponentOne/ ComponentTwo/]; 仪表板组件 import React from 'react';import components from './.
快问.任何人都知道如何渲染组件数组?试图让开发人员更容易更改特定组件. (它就像一个仪表板).

组件列表文件

import React from 'react';
export default [
    <ComponentOne/>
    <ComponentTwo/>
];

仪表板组件

import React from 'react';

import components from './../../components';

export default class Dashboard extends React.Component 
{
    render = () => {
        //Want to render the array of components here.
        return (
            <div className="tile is-parent">
                {components}
            </div>
        );
    };
}

问题显然是它是一个组件数组,所以我需要添加一个键.然而!我似乎无法在组件中添加键… …不确定如何解释它真的所以这里是我试过的代码:

{components.map((component,key) => (
    <component key={key}/>
}

如果我执行上述操作,我会得到“你必须应用密钥”错误但是没有任何渲染吗?我猜它是因为’组件’可能不存在或者沿着那些线条存在奇怪的东西.

我也尝试过component.key = key;但它显然不允许我在这种类型的对象上这样做吗?

我认为我的后备是返回一个速记函数而不是一个数组但是我喜欢这个数组吗?对于青少年来说似乎更简单.

解决方法

您考虑过使用新的 React Fragments吗? (第16节)

这将是最简单的解决方案,因为它将通过整个数组/密钥问题.

如果你需要传递密钥,那么我建议只需要组件有密钥.这就是React的工作方式,因此我不建议您在可能无法预测的接口后面隐藏此行为.

如果你真的需要这样做,那么你可以使用React.cloneElement克隆元素并注入新属性:

React.cloneElement(element,{ key: 'foo' });

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读