首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过react路由传递数据

如何通过react路由传递数据
EN

Stack Overflow用户
提问于 2021-09-09 11:32:59
回答 4查看 37关注 0票数 0

我需要这条路由向CreateRoom组件传递更多的数据。有人能帮我讲解语法吗?

代码语言:javascript
复制
<Route path="/" component={CreateRoom} />
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-09-09 11:55:43

在这种情况下使用钩子的正确解决方案应该是从您链接到上面指定的路由的任何地方传递状态,并使用CreateRoom组件中的useLocation钩子来访问状态。

但是,如果您想访问此路径,则需要从链接到此路径的每个位置传递道具。

例如:

代码语言:javascript
复制
<Link to={{pathname: "/", state = data }} />

或者使用history.push:

代码语言:javascript
复制
const RandomComponent = (props) => {
    const history = useHistory();

    const forwardToPage = () => {
        history.push({ pathname: "/", state: data})
    }
}

在您的CreateRoom组件中:

代码语言:javascript
复制
const CreateRoom = (props) => {
   const location = useLocation(); //This is imported from react-router-dom
   
   const data = location?.state;

   return(...)

} 
票数 0
EN

Stack Overflow用户

发布于 2021-09-09 11:42:58

你应该使用Link来发送它

代码语言:javascript
复制
<Link to={{ pathname: "/CreateRoom", state: data }} >

然后通过以下方式接收它:

代码语言:javascript
复制
 props.location.state
票数 0
EN

Stack Overflow用户

发布于 2021-09-09 11:49:57

您还可以使用历史记录传递数据,并在该组件上访问它。

代码语言:javascript
复制
props.history.push({
         pathname:"/CreateRoom",
         state:{
             userId:"1"
             ...
          }
 });

您可以像props.location.state.userId一样访问

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69117442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档