Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用列表从库中获取react组件_Javascript_Reactjs - Fatal编程技术网

Javascript 使用列表从库中获取react组件

Javascript 使用列表从库中获取react组件,javascript,reactjs,Javascript,Reactjs,我有一份清单: var coins =["BTC", "ETH","LTC"] 我可以通过以下模式获得这些硬币的图标: <Icon.Eth /> or <Icon.Btc /> or <Icon.ltc /> 或 但是列表是使用API检索的,它可以随时更改。 有没有办法做到这一点: <Icon.coins[0] /> or <Icon.coins[1] /> or <Icon.coins[2] /> 或 像这样使用方

我有一份清单:

var coins =["BTC", "ETH","LTC"]
我可以通过以下模式获得这些硬币的图标:

<Icon.Eth /> or <Icon.Btc /> or <Icon.ltc />
但是列表是使用API检索的,它可以随时更改。 有没有办法做到这一点:

<Icon.coins[0] /> or <Icon.coins[1] /> or <Icon.coins[2] />

像这样使用方括号

let IconA = Icon[coins[0]];
let IconB = Icon[coins[1]];

// Then use them like this
<IconA /> or <IconB />
让IconA=Icon[coins[0]];
让IconB=Icon[coins[1]];
//然后像这样使用它们
或

像这样使用方括号

let IconA = Icon[coins[0]];
let IconB = Icon[coins[1]];

// Then use them like this
<IconA /> or <IconB />
让IconA=Icon[coins[0]];
让IconB=Icon[coins[1]];
//然后像这样使用它们
或

如果要根据硬币名称动态查找,可以导入所有硬币并按字符串查找

import * as Icons from 'react-cryptocoins';

const coins = ['Eth'];

class MyClass extends React.Component {
    render() {
        return (
            <div>
                { React.createElement(Icons[coins[0]]) }
            </div>
        );
    }
}
用法:

import React, { Component } from 'react';
import Coin from './Coin';

const coins = ["BTC", "ETH", "LTC"];

function capitalize(str) {
    return str.charAt(0).toUpperCase() + str.substr(1).toLowerCase();
}

class MyElement extends Component {
    render() {
        return (
            <div>
                { coins.map( coin => (
                    <Coin icon={capitalize(coin)} />
                )}
            </div>
        )
    }
}
import React,{Component}来自'React';
从“./Coin”导入硬币;
常量硬币=[“BTC”、“ETH”、“LTC”];
函数大写(str){
返回str.charAt(0.toUpperCase()+str.substr(1.toLowerCase();
}
类MyElement扩展组件{
render(){
返回(
{coins.map(coin=>(
)}
)
}
}

如果要根据硬币名称动态查找,可以导入所有硬币并按字符串查找

import * as Icons from 'react-cryptocoins';

const coins = ['Eth'];

class MyClass extends React.Component {
    render() {
        return (
            <div>
                { React.createElement(Icons[coins[0]]) }
            </div>
        );
    }
}
用法:

import React, { Component } from 'react';
import Coin from './Coin';

const coins = ["BTC", "ETH", "LTC"];

function capitalize(str) {
    return str.charAt(0).toUpperCase() + str.substr(1).toLowerCase();
}

class MyElement extends Component {
    render() {
        return (
            <div>
                { coins.map( coin => (
                    <Coin icon={capitalize(coin)} />
                )}
            </div>
        )
    }
}
import React,{Component}来自'React';
从“./Coin”导入硬币;
常量硬币=[“BTC”、“ETH”、“LTC”];
函数大写(str){
返回str.charAt(0.toUpperCase()+str.substr(1.toLowerCase();
}
类MyElement扩展组件{
render(){
返回(
{coins.map(coin=>(
)}
)
}
}

React.createElement(组件)
React.createElement(Icon.coins[1])的缩写
该怎么办啊,我明白了,你的问题意味着有一个硬币数组,但你用它作为例子。没有
coins
数组。你的问题令人困惑,你是想按索引还是按名称查找?coinName=coins[I]来查找我所在的任何索引。
React.createElement(Component)的缩写
React.createElement(Icon.coins[1])
应该有用啊,我明白了,你的问题暗示有一个coins数组,但你是以它为例的。没有
coins
数组。你的问题让人困惑,你是想按索引还是按名称查找?coinName=coins[I]对于我所在的索引。我尝试了,但没有一个有效。我得到语法错误:意外标记我尝试了,但没有一个有效。我得到语法错误:意外标记我得到以下错误:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件)但是得到:未定义。您可能忘记了从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。我得到以下错误:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件)但是得到:未定义。您可能忘记了从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。