gpt4 book ai didi

javascript - 如何使用 React Router 修改作为 props 发送的路由参数?

转载 作者:行者123 更新时间:2023-11-29 19:10:59 24 4
gpt4 key购买 nike

我有一个 React Router,路由如下:

<Router history={history}>
<Route path='/' component={App} />
<Route path='/:fileType/:fileId' component={App} />
</Router>

这会将 props 放入我的 App 中,如下所示:

{
fileType: 'whatever',
fileId: 'ABC5734'
}

但是,我设计了我的组件,因此它需要这种格式:

{
file: {
type: 'whatever',
id: 'ABC5734'
}
}

因此,我想在将路径 Prop 发送到组件之前对其进行转换。像这样:

<Router history={history}>
<Route path='/' component={App} />
<Route
path='/:fileType/:fileId'
component={(props) => <App file={{type: props.fileType, id: props.fileId}} />} />
</Router>

这可能吗?

最佳答案

您应该使用高阶组件。

您可以使用 mapProps来自 recompose 的高阶组件:

import mapProps from 'recompose/mapProps'

<Router history={history}>
<Route path='/' component={App} />
<Route
path='/:fileType/:fileId'
component={mapProps(({ params: { fileType, fileId } }) => ({
fileType,
fileId
}))(App)}/>
</Router>

关于javascript - 如何使用 React Router 修改作为 props 发送的路由参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38871365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com