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

如何在反应中使用URL参数?

杨晓博
2023-03-14

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

在homepage.js xPOgk21523aqPW=room.id中

Homepage.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>

Player.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作为state。我该怎么做?

共有1个答案

夹谷衡
2023-03-14

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

然后,您将能够通过使用UseParams钩子访问id:

const{id}=useParams()

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

 类似资料:
  • 在过去的两天里,我一直在学习React,我在理解URL参数方面遇到了困难。 假设我想要一个路由。路线的定义如下: 现在我希望在另一个文件中定义的对象能够使用值。我该怎么做?我已经找到了关于路由url参数的教程,但没有一个解释如何实现这一点。 下面是我的视图现在的样子: 在哪里可以获得详细信息中的?我试过: 但是,未定义。

  • 这是我从网站上获取的JSON代码。问题是此代码没有方括号,并且在数组中没有有效值,因此我不知道如何在android应用程序中使用此代码。 {"h0":{"id": 1081,"imgtitle":{"ar_AA":"",""fa_IR":"\u0644\u062d\u0638\u0647\u0631\u0633\u06cc\u062f\u0646...","en_GB":""},"imgtext"

  • 问题内容: Javascript没有提供执行此操作的核心方法,那么该怎么做呢? 问题答案: 因此,您可以使用:

  • 问题内容: 我在从URL:获取值方面遇到问题。 帮助我更正我的控制器代码。我无法获得价值。 我的代码如下: : : : 问题答案: 快递4.x 要获取URL参数的值,请使用req.params 如果要获取查询参数,请使用req.query 快递3.x URL参数 查询参数

  • 我有一个“fileUpload”组件,我正在将它传递到我的React应用程序的表单中。 我希望能够为for循环中的每个输入元素设置唯一的ref,然后将该ref传递给delete按钮以删除该文件。 FileUploadComponent FormComponent //在不使用FileUploadComponent和手动设置/传递ref的情况下工作 //尝试自动分配ref并将其传递给delete按钮

  • 问题内容: 在JSP中,如何从URL获取参数? 例如,我有一个www.somesite.com/Transaction_List.jsp?accountID=5 要获取的 URL5 。 是否有request.getAttribute(“ accountID”)之类的会话或类似内容? 问题答案: 在GET请求中,请求参数取自查询字符串(URL上问号后面的数据)。例如,URL http://hostn