Javascript React Redux中的路由器路由参数
使用redux和react router,我希望访问路由指定组件以外的组件上的路由参数 我已经对react-router、redux和react-router-redux进行了如下设置,我想从我的redux存储访问reportId参数Javascript React Redux中的路由器路由参数,javascript,reactjs,redux,react-router,react-router-redux,Javascript,Reactjs,Redux,React Router,React Router Redux,使用redux和react router,我希望访问路由指定组件以外的组件上的路由参数 我已经对react-router、redux和react-router-redux进行了如下设置,我想从我的redux存储访问reportId参数 const history = syncHistoryWithStore(browserHistory, store); const store = createStore(reducers); const routes = ( <Router
const history = syncHistoryWithStore(browserHistory, store);
const store = createStore(reducers);
const routes = (
<Router history={history}>
<Route path="/" component={MainLayout} >
<IndexRoute component={Home} />
<Route path="reports">
<Route path=":reportId" component={ReportViewerContainer} />
</Route>
</Route>
</Router>
);
ReactDOM.render(
<Provider store={store}>{router}</Provider>,
document.getElementById('root')
);
const history=syncHistoryWithStore(浏览器历史记录,存储);
常量存储=创建存储(还原器);
常数路由=(
);
ReactDOM.render(
{路由器},
document.getElementById('root'))
);
我已经尝试连接react-redux路由器来存储路由状态,但是我发现除了活动路由的完整路径之外,redux内部没有任何有用的存储。这让我可以选择从redux中的路径解析出reportId,或者在redux中创建自己的自定义操作,并在ReportViewerContainer组件中使用componentWillReceiveProps生命周期方法更新它。一定有更好的方法吗?因此我认为您可以使用获取将通过路由器传递的位置。(参考该链接了解其工作原理。)这将为您提供一个坚实的工作方向
这也可以帮助您在国际化的道路上工作
如果您想访问redux存储中的路由器,有一个名为
的HOC,它使用路由器
()。如果我没记错的话,这会将任何路由器状态作为道具传递给您的组件
您需要对组件进行的唯一更改是:
import { withRouter } from 'react-router'
export default withRouter(ReportViewerContainer);
如果要访问组件内部的路由器参数,最好的方法是使用with router 通过以上示例,您会发现更好的理解
import { withRouter } from 'react-router'
export default withRouter(ReportViewerContainer);