javascript - 如何根据变量值动态请求 React 组件?

标签 javascript reactjs

我想知道如何根据变量值动态请求组件。我在这里要完成的是以下内容:

import Template1 from './Template1.jsx';
import Template2 from './Template2.jsx';

var ComponentTemplate = (some_condition === true) ? "Template1" : "Template2"

render() {
    <ComponentTemplate prop1="prop1 val" />
}

这可能吗?如果是,怎么办?

最佳答案

我不清楚为什么需要使用类的字符串表示而不是仅仅切换组件或使用条件渲染:

var Component = some_condition === true ? Template1 : Template2;
// ...
return ( <Component /> );

但假设这是过于简单化,最简单的做法是使用将字符串转换为组件的映射对象。使用 ES2015 enhanced object literals , 它变得相当简单:

var Components = {
  Template1,
  Template2,
};

var Component = condition ? Components['Template1'] : Components['Template2'];

// ...

return ( <Component /> );

关于javascript - 如何根据变量值动态请求 React 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34752903/

相关文章:

javascript - 类型错误 : undefined is not an boject (evaluating '_ref$i18n.currentLanguage' )

javascript - 如何在我的本地一起运行两个 react 项目

javascript - 如何从第三方应用程序替换评论部分中的图像

javascript - 你能异步通知网络浏览器吗?

javascript - Ajax 请求中的toggleClass 不起作用

javascript - 查看 React 的模块/符号的依赖关系

javascript - react 。如何在没有警告的情况下将 Grid 插入 TabPanel?

Javascript - 如果语句不起作用?

javascript - 无法删除 Javascript 中 event.data 附加的 jQuery 事件监听器

javascript - react-codemirror beforeChange 事件