当前位置: 首页 > 知识库问答 >
问题:

在React中将道具从路由传递到组件

衡翰翮
2023-03-14

我使用的反应与反应路由器的项目,我需要传递道具的子组件从路由。

我有这样的设置:

App.js

<Switch>
  <Route exact path='/' render={()=><Home num="2" someProp={100}/>} />
  <Route path='/roster' component={Roster}/>
</Switch>

Home.js

import React from 'react'

const Home = () => (
  <div>
    <h1>Welcome to the Tornadoes Website!</h1><p>{this.props.num}</p>
  </div>
)

export default Home

问题是主组件总是给出错误“未定义”。我无法理解如何解决这个问题。如果我从Home.js中移除道具,组件渲染就很好。但当我尝试访问道具时,会出现错误。

共有2个答案

季俭
2023-03-14
<Switch>
  <Route exact path='/' render={()=><Home num="2" someProp={100}/>} />
  <Route path='/roster' component={Roster}/>
</Switch>

import React from 'react'

const Home = (props) => (
  <div>
    <h1>Welcome to the Tornadoes Website!</h1><p>{props.someProp} {props.num} </p>
  </div>
)

export default Home

由于您在App.js中将道具命名为someProp以访问它,因此您需要执行props.someProp,该名称必须与您传递给它的名称相匹配。持有“2”的num道具也是如此。

父组件渲染子组件中的示例

现在在孩子

const Child = (props) => (
<div> 
 {props.prop1} will render hello {props.fun} will render this is a fun prop 
</div>
)

殷德本
2023-03-14

无状态组件不会通过this访问道具。它们作为函数的参数传入。

const Home = props => (
  <div>
    <h1>Welcome to the Tornadoes Website!</h1><p>{props.num}</p>
  </div>
)
 类似资料:
  • 我对反应和试图理解如何传递道具很陌生。 首先,我设置了一个Navlink组件,该组件包含子类别属性: ,,都是从json文件中获取的,所以这部分是可以的。 每条路线的定义如下: 所以它呈现一个名为

  • 例如: 我如何传递一些东西到,以便我可以通过在组件中访问它?

  • 我有一个模态,我想在其中放置一个动态嵌套视图。我认为这样做的一个好方法是像这样使用 我想把一些道具传给这些组件,就像我平时在React中一样 最终,我将移动到存储/获取状态中的这些属性,但是考虑到当前的实现,在定义开关

  • 我尝试使用react路由器将道具传递给组件,如下所示: 我如何做到这一点,但与反应路由器,我如何在组件本身使用它? 我试过这个,但不起作用:

  • 问题内容: 我正在使用ReactRouter创建一个多页面应用程序。我的主要组件是,它呈现了所有到子组件的路由。我正在尝试通过路线传递道具,根据我所做的一些研究,子组件利用最常见的方式来挖掘传递下来的道具是通过它们继承的对象。但是,这个对象对我来说是未定义的。在子组件的函数上,我和我返回了一个看起来像这样的对象 看起来根本不像我期望的道具。这是我的详细代码。 父组件(我试图在所有子组件中将“ hi

  • 我试图使用react router将props从app.jsx传递到某个路由组件,但出现以下错误