您可以在JSX中创建来自组件的传递组件的react组件吗?

时间:2019-12-31 03:23:13

标签: reactjs jsx

我有一些渲染相同组件的路由。每条路线都有一个特定的组件作为其要呈现的属性。

<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>

1 个答案:

答案 0 :(得分:1)

是的,有。所需的技巧是将组件存储在具有大写名称的变量中!听起来很傻,但这是事实。因此,在CommonComponent中,您可以使用:

const ComponentToRender = props.specificComponent;
return (<ComponentToRender ... />);