我是redux的新手,我创建了一个导航到用户编辑页面的路线,我还想使用下面的代码将商店和历史作为道具传递。
<Route path="/edit/:id" render={({history}) => (
<EditUser store={store} history={history} />
)}/>
但现在我无法访问我在EditUser组件中传递的参数(:id)。当我尝试使用 this.props.match.params.id 进行访问时,它显示未定义,但如果我将路由重写为
,则它会起作用<Route path="/edit/:id" component={EditUser}/>
但现在我认为我无法传递其他道具。
非常感谢。
答案 0 :(得分:4)
如果您想使用match
,则必须将其传递给您的组件。
<Route path="/edit/:id" render={({history, match}) => (
<EditUser store={store} history={history} match={match} />
)}/>
您也可以传递所有道具:
<Route path="/edit/:id" render={props => (
<EditUser store={store} {...props} />
)}/>
或者您可以使用react-redux的connect
功能来访问商店
<Route path="/edit/:id" component={connect(mapStateToProps)(EditUser)}/>