Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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
Reactjs 如何在反应路线中传递多个功能组件?_Reactjs_React Props - Fatal编程技术网

Reactjs 如何在反应路线中传递多个功能组件?

Reactjs 如何在反应路线中传递多个功能组件?,reactjs,react-props,Reactjs,React Props,我有这样的东西 <Switch> <Route path="/playground/:id"> <Header></Header> <Playground></Playground> <Footer></Footer> </Route> <Switch/> <Route path="/playgrou

我有这样的东西

<Switch>
 <Route path="/playground/:id">
      <Header></Header>
      <Playground></Playground>
      <Footer></Footer>
 </Route>
<Switch/>
<Route path="/playground/:id" component={Playground}></Route>

我想通过组件道具传递所有功能组件,如下所示

<Switch>
 <Route path="/playground/:id">
      <Header></Header>
      <Playground></Playground>
      <Footer></Footer>
 </Route>
<Switch/>
<Route path="/playground/:id" component={Playground}></Route>

但在这里,我只能通过组件道具传递一个组件。我怎么能全部通过呢

我想这样做是因为当通过组件道具传递函数组件时,我可以得到
match.params.id
值,但是当我通过第一种方式传递函数组件时,我不能得到
match.params.id
的值,只给出了错误`参数未定义

那么,第一个问题是,如何传递多个组件?

第二个问题,为什么我不能访问from match.params.id的值?如果我使用第一种方法传递组件,我如何访问?

1。您可以将所有元素填充到一个组件中,并将其传输到路由器

2.要从参数中获取某种值,其中一种方法是使用react路由器dom,可以通过useParams钩子这样获取,如下所述

const { id } = useParams()
console.log(id)
or
const query = useParams()
console.log(query.id)

在其他组件而不是主组件中获取id值怎么样?是的,您也可以从任何地方通过钩子获取id值。我更正了答案您可能想/需要使用。