React Router-使用组件参数并将prop传递给渲染的组件吗?

时间:2019-10-16 17:46:50

标签: reactjs react-router

使用动态方法使用组件参数而不是渲染进行路由。

<Route
path={prop.layout + prop.path}
component={prop.component}
key={key}/>

prop.component作为以下形式的组件对象出现:

import Environments from "views/core/Environments.jsx"; prop.component=Environments;

在保留这种方法的同时,我希望能够将一个props传递给组件。在不更改当前路由设置的情况下可以做到吗?

谢谢

编辑:感谢Lopoi,感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以将prop.component转换为一个函数,将props作为一个对象输入,并将要返回的组件作为输出

prop.component = (props) => {
   return <Environments {...props}/>;
}

但是,路由需要为功能component={prop.component(props)}

提供输入

如果您正在运行forEachmap循环,并且prop.component只是对组件的引用,则可以使用React.createElement将该元素构建为Route中的>孩子,例如:

<Route
path={prop.layout+prop.path}
key={key}
>
 {React.createElement(prop.component,props)}
</Route>