使用变量 ReactClass 名称调用 React.createElement

Call React.createElement with variable ReactClass name

我是 React 的新手,如果这是一个愚蠢的问题,或者我遗漏了一些明显的东西,我深表歉意,但我正在升级为早期版本的 React 编写的项目以遵循新的 "createElement" 语法(我们不能使用 JSX,所以我们所有的代码都使用原生 JS 调用)。

所以,这个:

React.DOM.div(etc);

变成这样:

React.createElement('div', etc);

无论如何,为了启动整个程序,我们在 React 世界之外使用了一个接受 ReactClass 名称的函数,并调用了 React.render,如下所示:

React.render (window [ReactClassNameHere] (PropsGoHere), TargetGoesHere);

这工作得很好。

然而,在 React 0.13.3 中,这不再有效,我无法找到正确的方法。我尝试了多种方式,包括:

React.render(
          React.createElement(ReactClassNameHere, PropsGoHere, {}),
          TargetGoesHere
        );

...和:

React.render(React.createElement(window[ReactClassNameHere], PropsGoHere, {}),TargetGoesHere);

...和:

React.render(
          React.createElement(React.createFactory(ReactClassNameHere), PropsGoHere, {}),
          TargetGoesHere
        );

所以显然我不太了解发生了什么,也不知道如何解决它。感谢任何帮助,但请保持温柔。

你可以用这个。请注意,我从 createElement 中删除了 {}。如果您不需要子元素,您应该将该参数设置为 null 或跳过它。

React.render(
    React.createElement(ReactClassNameHere, PropsGoHere),
   TargetGoesHere
);