从反应文件夹中导入所有文件
Importing all files from a folder in react
我正在通过 index.jsx 从 'icons' 中的文件夹导入所有 SVG,如下所示:
index.jsx:
export about from './about.svg';
这里是导入:
Button.jsx
import React from 'react';
import './MenuIcon.scss';
import * as IconID from './icons';
const Button = (props) => {
return (
<div className="menu-icon" >
<div className={'menu-icon__icon-wrapper'}>
<IconID.about /> // This works great
<IconID['about'] /> // This does not work
</div>
</div>
);
};
export default Button;
现在获取特定的 Svg,例如我只是调用 return 方法,一切正常。
现在我想加载不同的 SVG,例如:
const svgName = 'back';
return (<IconId['back'] />);
我怎样才能做到这一点?
使用 React.createElement
语法来动态定义元素而不是 JSX,因为它只适用于编译时标识符。
React.createElement(IconId.back, {...props}, [...children])
你可以在这里使用上下文
const importAll = (r) => {
return r.keys().map(r);
};
const allData = importAll(
require.context("./icons", false, /\.svg$/)
)
我正在通过 index.jsx 从 'icons' 中的文件夹导入所有 SVG,如下所示:
index.jsx:
export about from './about.svg';
这里是导入: Button.jsx
import React from 'react';
import './MenuIcon.scss';
import * as IconID from './icons';
const Button = (props) => {
return (
<div className="menu-icon" >
<div className={'menu-icon__icon-wrapper'}>
<IconID.about /> // This works great
<IconID['about'] /> // This does not work
</div>
</div>
);
};
export default Button;
现在获取特定的 Svg,例如我只是调用 return 方法,一切正常。
现在我想加载不同的 SVG,例如:
const svgName = 'back';
return (<IconId['back'] />);
我怎样才能做到这一点?
使用 React.createElement
语法来动态定义元素而不是 JSX,因为它只适用于编译时标识符。
React.createElement(IconId.back, {...props}, [...children])
你可以在这里使用上下文
const importAll = (r) => {
return r.keys().map(r);
};
const allData = importAll(
require.context("./icons", false, /\.svg$/)
)