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

时间:2015-05-28 21:27:26

标签: reactjs

我是React的新手,如果这是一个愚蠢的问题,或者如果我错过了一些明显的东西,我会道歉,但我要升级为早期版本的React编写的项目,请关注新的" createElement"语法(我们不能使用JSX,所以我们所有的代码都使用本机JS调用)。

所以,这个:

React.DOM.div(etc);

成为这个:

React.createElement('div', etc);

无论如何,为了解决整个程序问题,我们使用了React-world之外的函数,该函数接受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
        );

显然,我不太了解发生了什么,也不知道如何解决问题。任何帮助表示赞赏,但请保持温和。

1 个答案:

答案 0 :(得分:1)

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

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