You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React组件间路由传参失败:this.props.location未定义求助

解决React路由传参时this.props.location undefined的问题

嘿,刚学React3天就敢折腾路由传参,已经超棒啦!咱们来快速搞定这个问题~

问题根源

你在配置/bookCourse/:date这条路由时,用了render属性但没有把路由相关的props传递给Form组件。直接写() => <Form/>的话,Form组件根本拿不到location、match这些路由提供的属性,自然会报错TypeError: this.props.location is undefined。

解决方案

1. 修改路由配置,传递路由props

把你的Route代码改成这样:

<Route path='/bookCourse/:date' exact render={(props) => <Form {...props} />} />

这里的props包含了路由的location、match等信息,通过{...props}解构传递给Form组件,Form就能拿到这些属性了。

2. 在Form组件中正确获取日期参数

其实获取路由参数更推荐用match.params(专门用于路由参数的属性),比location.params更直接。修改Form组件里的代码:

// 替换原来的 {this.props.location.params.date}
{this.props.match.params.date}

验证一下

你的Kurse组件里的Link写法是对的:

<Link to={{pathname: "/bookCourse/"+date}}><Button>{date}</Button></Link>

点击按钮后,路由会正确带上日期参数,现在修改完路由和Form组件后,就能在Form里正常显示日期啦!

内容的提问来源于stack exchange,提问作者user2656732

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:34:44