使用变量 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
);
我是 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
);