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 如何将字符串呈现为自定义组件?_Javascript_Reactjs_React Native_Components_Jsx - Fatal编程技术网

Javascript 如何将字符串呈现为自定义组件?

Javascript 如何将字符串呈现为自定义组件?,javascript,reactjs,react-native,components,jsx,Javascript,Reactjs,React Native,Components,Jsx,所以我有这个密码 ReactDom.render(<Home />, document.getElementById("main")); ReactDom.render(,document.getElementById(“main”); 这可以完美地工作,并渲染主组件。 我想使此代码动态化 它可以是任何构件,如公寓或建筑构件,而不是住宅构件 我已经尝试通过以下代码来实现这一点 const tag = `<${main} />`; ReactDom.render(tag

所以我有这个密码

ReactDom.render(<Home />, document.getElementById("main"));
ReactDom.render(,document.getElementById(“main”);
这可以完美地工作,并渲染主组件。 我想使此代码动态化 它可以是任何构件,如公寓或建筑构件,而不是住宅构件

我已经尝试通过以下代码来实现这一点

const tag = `<${main} />`;
ReactDom.render(tag, document.getElementById("main"));
const标记=``;
render(tag,document.getElementById(“main”));
这不管用


我想知道这是否可能。我更愿意在没有任何第三方库的情况下执行此操作。

如果您希望实现此目标,我会首先创建一个


我希望这个解释有帮助

您可以创建一个组件来呈现您在状态中传递的每个名称集,这将根据您的道具呈现您可能期望的所有组件

例如,您可以编写以下组件:Render.js

import React, { useState } from 'react';
// import other components

export default (props) => {
  const [current, setCurrent] = useState('home');
  const App= {
    home: Home,
    apartment: Apartment ,
    building: Building,
    ...
  };

  let Render = App[current] || Home;

  return <Render {...props}   />;
};
import React,{useState}来自“React”;
//导入其他组件
导出默认值(道具)=>{
const[current,setCurrent]=useState('home');
常量应用={
家:家,
公寓:公寓,
建筑:建筑,
...
};
让Render=App[current]| | Home;
返回;
};
index.js如下所示:

ReactDOM.render(<App />, document.getElementById('root'));
ReactDOM.render(<Render/>, document.getElementById('root'));
ReactDOM.render(,document.getElementById('root');

为什么不制作一个应用程序组件,让它渲染家、建筑或公寓?@Domino987我不想一次渲染所有组件。可以将其视为条件渲染。我想我可以使用开关,但是我必须硬编码CASE值。我们可以知道这样渲染的目的/情况吗this@SumanthMadishettyonClick我想根据onClickHandler('value')传递的字符串呈现不同的组件这听起来很适合使用react路由器,也许这会有帮助:谢谢。我正在我的应用程序中使用react路由器
ReactDOM.render(<Render/>, document.getElementById('root'));