TypeError:无法读取属性';参数';Reactjs上未定义的
我在app.js上有一条路线TypeError:无法读取属性';参数';Reactjs上未定义的,reactjs,react-router,Reactjs,React Router,我在app.js上有一条路线 <Route exact path = "/:name" component = {CityPage} /> 我在CityPage里面有一个组件我有一个组件 render(){ return( <CityHome /> ) } render(){ 返回( ) } 在这部分我有 <p> {this.props.match.params.name} </p&g
<Route exact path = "/:name" component = {CityPage} />
我在CityPage里面有一个组件我有一个组件
render(){
return(
<CityHome />
)
}
render(){
返回(
)
}
在这部分我有
<p> {this.props.match.params.name} </p>
{this.props.match.params.name}
但是当我运行程序时,它会显示错误
为什么?默认情况下,React路由器不会向组件传递任何道具。如果需要访问该数据,则在定义
路线时,应使用渲染
道具,而不是组件
:
<Route exact path="/:name" render={routeProps => (
<CityPage match={routeProps.match} />
)} />
(
)} />
正如您在这里所看到的,render
是一个接收并返回视图的方法。您可以使用该函数将这些值传递给添加到返回视图中的组件。如果需要帮助,您需要提供更多代码。这只是意味着this.props.match
是未定义的
…整个Cityhome类代码将有所帮助,应该有一个属性匹配,带有一个值。看起来您没有向Cityhome
传递任何道具。这就解释了为什么它是未定义的
(假设您正在从中访问该组件)。它可能像
一样简单,但由于提供的代码有限,我不能肯定。@Brianthonpson,但如果我创建了另一个组件,我也需要这些道具