我正在尝试创建简单的React-Redux-Router V4应用。到我的一个组件的路由使用url param。在我的Route
组件中,我已经传递了render
道具,这是一个返回组件的匿名函数。像这样:
<Route key="post" path="/post/:id" render={() => <Post/>} />
我使用这个道具而不是component
道具:
<Route key="post" path="/post/:id" component={Post} />
因为我无法使用component
道具进入渲染组件。问题是,使用component
道具,您可以使用props.match.params.name
,它将包含我需要的确切参数。使用render
组件时无法使用此功能。
我可以使用window.location.href
,但感觉很脏。
谢谢!
答案 0 :(得分:4)
match
,location
和history
道具会传递到您的render
函数中。
示例:
<Route key="post" path="/post/:id" render={({ match }) => <Post name={match.params.name}/>} />
文档:https://reacttraining.com/react-router/web/api/Route/Route-props
答案 1 :(得分:0)
您需要先导入此
import { withRouter } from 'react-router-dom';
之后,最后导出组件,如下所示。 “用户”是类组件名称
export default (withRouter(User));
现在,如果您要打印该值,则会得到一个响应。
constructor(props) {
super(props);
console.log('Props', this.props);
}
快乐编码