使用动态方法使用组件参数而不是渲染进行路由。
<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,感谢您的帮助!
答案 0 :(得分:0)
您可以将prop.component
转换为一个函数,将props作为一个对象输入,并将要返回的组件作为输出
prop.component = (props) => {
return <Environments {...props}/>;
}
但是,路由需要为功能component={prop.component(props)}
如果您正在运行forEach
或map
循环,并且prop.component
只是对组件的引用,则可以使用React.createElement将该元素构建为Route中的>孩子,例如:
<Route
path={prop.layout+prop.path}
key={key}
>
{React.createElement(prop.component,props)}
</Route>