我有一个页面,根据用户输入呈现不同的组件。目前,我已经硬编码了每个组件的引用,如下所示:
import React, { Component } from 'react'
import Component1 from './Component1'
import Component2 from './Component2'
import Component3 from './Component3'
class Main extends Component {
render() {
var components = {
'Component1': Component1,
'Component2': Component2,
'Component3': Component3
};
var type = 'Component1'; // just an example
var MyComponent = Components[type];
return <MyComponent />
}
}
export default Main
然而,我经常更改/添加组件。有没有办法可能有一个仅存储组件名称和路径的文件,然后在另一个文件中动态导入这些组件?
export { default as Component1 } from './Component1'
,然后import * as componentList from './ComponentIndex'
,最后使用componentList[type]
。 - totymedli.default
进行访问? - Siluveru Kiran KumarElement implicitly has an 'any' type because expression of type 'string' can't be used to index type '{ ComponentCar: () => Element; }'. No index signature with a parameter of type 'string' was found on type '{ ComponentCar: () => Element; }'.ts(7053)
。这个错误来自于这个命令const DynamicComponent = Components[Component]
,其中Component
是Car
。 - axel