我有几个呈现相同组件的路由。 每个路由都有一个特定的组件作为它将呈现的属性。
<CommonComponent specificComponent={SpecificComponent} propName="propValue" />
这在 CommonComponent 中按预期工作:
React.createElement(specificComponent, { dataUrl: dataUrl });
有没有JSX方法来做React.createElement? 示例路由如下所示:
<Route path="/pageOne">
<CommonComponent specificComponent={SpecificComponentOne} dataUrl="dataUrl" />
</Route>
<Route path="/pageTwo">
<CommonComponent specificComponent={SpecificComponentTwo} dataUrl="dataUrl" />
</Route>
是的,有。所需的技巧是将组件存储在具有大写名称的变量中!听起来很傻,但这是真的。因此,在CommonComponent
中,您只需使用:
const ComponentToRender = props.specificComponent;
return (<ComponentToRender ... />);