I am trying to read the code but its returning undefined. I want to read the code from the route and display it in h3 tag.
The Routing
JavaScript
x
10
10
1
<Router>
2
<Routes>
3
<Route path="/" element={<p>Homepage</p>} />
4
<Route path="/join" element={JoinRoomPage()} />
5
<Route path="/create" element={CreateRoomPage()} />
6
This is the roomCode i want to read in the Room Component
7
<Route path="/room/:roomCode" element={Room()} />
8
</Routes>
9
</Router>
10
The Room Component
JavaScript
1
22
22
1
import React, { useState, useEffect } from "react";
2
import { useParams } from "react-router-dom";
3
4
export default function Room(props) {
5
const [room, setRoom] = useState({
6
votesToSkip: 2,
7
guestCanPause: true,
8
isHost: false,
9
});
10
11
let { roomCode } = useParams();
12
13
return (
14
<div>
15
<h3>{roomCode}</h3>
16
<p>Votes: {room.votesToSkip}</p>
17
<p>Guest Can Pause: {room.guestCanPause}</p>
18
<p>Host: {room.isHost}</p>
19
</div>
20
);
21
}
22
Thanks in advance
Advertisement
Answer
The route components should be passed as JSX, not as an invoked function.
JavaScript
1
9
1
<Router>
2
<Routes>
3
<Route path="/" element={<p>Homepage</p>} />
4
<Route path="/join" element={<JoinRoomPage />} />
5
<Route path="/create" element={<CreateRoomPage />} />
6
<Route path="/room/:roomCode" element={<Room />} />
7
</Routes>
8
</Router>
9