javascript - 如何基于prop在文件中动态导入react组件
问题描述
我有一个文件(在本例中为 Test.js),将来会有许多小组件(目前只有 Test 和 SuperTest)。
我不想导入整个文件以优化性能。我尝试只导入我需要的组件。不是整个文件。
在示例中,prop 可以是“Test”或“SuperTest”。它抛出一个错误Unexpected token (7:26) 有什么办法可以做到这一点吗?然后将其渲染到 App 中?
应用程序.js
import { useState } from 'react';
// import Test from './Test';
function App({prop}) {
const [Comp, setComp] = useState(null);
import('./Test').then(({`${prop}`: newComp}) => { // This is an ERROR
console.log(typeof newComp); // Object
setIcon(() => newComp);
});
return (
<div className="App">
<Comp />
</div>
);
}
export default App;
测试.js
export const Test = () => {
return (
<div>
Hello People
</div>
);
}
export const SuperTest = () => {
return (
<div>
Hello People 2
</div>
);
}
解决方案
不要在这个 {props} 中包装道具。试试这个:
function App(prop) {
const [Comp, setComp] = useState(null);
推荐阅读
- javascript - 如何清理这个 useEffect 钩子
- javascript - 如何通过在单击按钮时覆盖已打开的选项卡来打开新选项卡?
- amazon-web-services - 如何在 AWS 上启动 Snakemake 工作流程并分离?
- python - 如何在 OWL 中获取文字标签值?
- prolog - 由于空间不足而无法打印资源异常-SWI-prolog
- javascript - 制作一个固定的导航栏,Uncaught TypeError?
- php - 如何使用 php wordpress 使用此代码在特定页面上插入按钮
- python - 如何将 RGB 图像转换为灰度,扩展该灰度图像的尺寸以在 InceptionV3 中使用?
- api - 如何从 Platform of Trust 获取 Sandbox 环境中当前登录用户的 ID?
- sql - 带有 OUTPUT 的存储过程 - 必须声明标量变量