在React中,根据名称动态呈现组件涉及到使用条件渲染和组件映射
import React from 'react';
import ComponentA from './ComponentA';
import ComponentB from './ComponentB';
import ComponentC from './ComponentC';
const componentMapping = {
ComponentA,
ComponentB,
ComponentC,
};
const getComponentByName = (componentName) => {
const Component = componentMapping[componentName];
if (!Component) {
console.error(`Component "${componentName}" not found in the mapping.`);
return null;
}
return <Component />;
};
getComponentByName
函数动态呈现组件。例如,您可以在父组件中使用它:import React, { useState } from 'react';
import ComponentA from './ComponentA';
import ComponentB from './ComponentB';
import ComponentC from './ComponentC';
const componentMapping = {
ComponentA,
ComponentB,
ComponentC,
};
const getComponentByName = (componentName) => {
const Component = componentMapping[componentName];
if (!Component) {
console.error(`Component "${componentName}" not found in the mapping.`);
return null;
}
return <Component />;
};
const ParentComponent = () => {
const [selectedComponentName, setSelectedComponentName] = useState('ComponentA');
return (
<div>
<button onClick={() => setSelectedComponentName('ComponentA')}>Component A</button>
<button onClick={() => setSelectedComponentName('ComponentB')}>Component B</button>
<button onClick={() => setSelectedComponentName('ComponentC')}>Component C</button>
{getComponentByName(selectedComponentName)}
</div>
);
};
export default ParentComponent;
现在,当用户点击按钮时,相应的组件将以动态方式呈现。这个示例仅用于演示目的,实际应用中可能需要根据项目需求进行调整。
领取专属 10元无门槛券
手把手带您无忧上云