Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TypeError:无法读取属性';参数';Reactjs上未定义的_Reactjs_React Router - Fatal编程技术网

TypeError:无法读取属性';参数';Reactjs上未定义的

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

我在app.js上有一条路线

<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,但如果我创建了另一个组件,我也需要这些道具