如何在 React 中使用 URL 参数?

默特·奥兹勒

在我的项目中,当我只需单击主页上的“加入房间”按钮时,它会将我定向到特定房间。所以以房间号为例;它发生在 xPOgk21523aqPW 并且它通过像 localhost: 3000 / room / xPOgk21523aqPW 这样的扩展来实现。当我进行此重定向时,我所在组件的名称是 Player。当我将 Homapage.js 重定向到 Player.js 时,我想要的是能够使用 Player.js 中的代码“xPOgk21523aqPW”作为变量。所以每次我重定向时,我都会尝试通过在组件打开时分离 url 来做到这一点。我试图将数据从组件传输到另一个组件,但为此我无法在适当的系统基础上设置我的项目。那么我该如何应用这个方法呢?

在 homepage.js xPOgk21523aqPW = room.id

主页.js

 <GridItem
        colStart={"auto"}
        colSpan={[5, null, null, 2, null, null]}
        p={6}
      >
        <Heading as="h1" mb={6}>
            Rooms
            </Heading>
            <Divider orientation="horizontal" />
           {rooms.map((room)=> (
              <ListItem>
              <ListItemText primary={room.roomName} secondary={room.roomInfo}
              />
               {/* <Link to={`/room/${room.id}`}></Link> */}
                <Link to={`/room/${room.id}`}>
                <Button onClick={() => joinRoom(room.id)}>Join Room</Button>
                {/* <Form action='localhost:8888?roomId=' method="post">
                <input type="hidden" name="roomCodeTxt" value=room.id />
                <input type="submit" value="Join Room" />
                </Form> */}      
                </Link>
              </ListItem>))}
       </GridItem>

播放器.js

class Player extends Component {
  constructor(){
    super();
    const params = this.getHashParams(); 
    let {id} = useParams();
    console.log(id);
    this.state = {
      logeedIn : params.access_token ? true : false,
      currentStatus: false,
      roomId: "",
      rooms: {
      roomAdminMail: "",
      roomName: "",
      roomInfo: ""
      }, 
      nowPlaying: {
        artist_name : 'Not Checked',
        song_name: 'Not Checked',
        image: ''
      }
    }
    console.log("Room Id" + this.state.roomId);

我想要的只是在构造函数中分离这个 url,并将 xPOgk21523aqPW 代码分配给 roomId 作为状态。我怎样才能做到这一点?

西多丽娜

最简单的方法是使用 react-router-dom 和动态路径:

<Switch><Route path="/room/:id" children={} /></Switch>

然后您就可以使用 UseParams 钩子访问 id:

const { id } = useParams();

文档:https : //reactrouter.com/web/example/url-params

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在React中处理URL参数

如何在单独的组件中使用url参数

如何在Angular的GET请求中使用URL参数?

如何在Observable.forkJoin()中使用动态参数(URL)

如何在API Gateway中使用路径参数创建URL

如何在android中使用url发送参数并获得响应

如何在Sapper / Svelte中使用多个URL参数

如何在IP本身中使用额外的参数更改url?

如何在表单验证中使用通过url传递的参数

如何在NestjS中使用可选的url参数

如何在React-Router的组件中使用参数?

如何在React中使用道具验证参数

如何在 React 中使用 useHistory 钩子发送多个参数?

如何在React中使用SVG填充URL

如何在react-admin中使用漂亮的URL(BrowserRouter)

如何在Angular中使用“完整URL”(带有参数的URL)进行导航

如何在React中更新URL中的查询参数?

如何在React JS中读取组件中的URL参数?

如何在React中的URL开头放置参数

如何在react js中从url获取参数

提出Ajax请求时,如何在使用c#的url参数中使用jquery变量?

如何在views.py中使用url参数过滤模型(用户)?

如何在Java中使用URI模板更改URL中的路径参数

如何在FeignClient中使用多个查询字符串参数调用url?

如何在电子商务产品 URL 中使用名称而不是参数化 ID

如何在Mac的PAW API工具中使用变量作为URL参数?

如何在Swift中使用包含相同键的多个值的查询参数构建URL?

如何在Laravel 5.1中使用url(路由)传递多个参数

如何在Django中使用带有参数的反向URL查找?