我有一些渲染相同组件的路由。每条路线都有一个特定的组件作为其要呈现的属性。
<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>
答案 0 :(得分:1)
是的,有。所需的技巧是将组件存储在具有大写名称的变量中!听起来很傻,但这是事实。因此,在CommonComponent
中,您可以使用:
const ComponentToRender = props.specificComponent;
return (<ComponentToRender ... />);