I have followed the suggestion on Pass props in Link react-router
I'm sending Link
value to the ReactJS functional component and while accessing it returning empty, I'm sure missing something basic here.
This is my Route path
<Route path="/report/:id">
<ReportPage />
</Route>
The report page which is trying to get value from either query param or state param both returns empty
const ReportPage = (props) => {
const { query } = useParams();
const { hello } = useState()
console.log(query) // Return Empty for Try #2
console.log(hello) // Return Empty for Try #1
console.log(this.props.match.params.hello) // Undefined for
return (
<DashboardLayout>
<h2> AMI Test Reports </h2>
</DashboardLayout>
)
}
DashbaordPage which is Linking
Tried 1 Using the state
<Link
to={{
pathname: "/report/1",
state: {
hello: "Hello World"
}
}}>
Press Me
</Link>
Tried #2 using the query
<Link
to={{
pathname: "/report/1",
query: "test"
}}>
Press Me
</Link>
What is the right way to access the Value passed in the Link in another functional component.
useParams returns an object containing all of the available parameters. What you currently have is useParams returning an object that contains a params
property which is incorrect.
what you want:
const { id } = useParams();
As for the location state, you'd get that from useLocation, not useState.
const { state } = useLocation()
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.