React Link state is received as null

reactjs
Category Software and digital electronics / Coding
2025-01-05 16:02

I use React VITE v6.0.2 and I try to send a state via <Link> component but the target page receives the state as empty.

The state is provide as follows

<Link
    to={{
        pathname: `/post/${post.id}`,
        state: {'test': 'test'},
    }}
>{post.title || 'untitled'}</Link>

On the Post.jsx, I receive the state this way:

import { useLocation } from 'react-router-dom';

function Post()
{
    const location = useLocation();
    console.log(location);
    ...

The problem is the state is the console.log reports state as null.

Object { pathname: "/post/134", search: "", hash: "", state: null, key: "sv8sy9m8" }

How to fix this promblem?

add comment
Answered by robin
2025-01-13 07:39

You need to place state as a separate property to the component like this:

<Link
    to={`/post/${post.id}`}
    state={{'test': 'test'}}
>{post.title || 'untitled'}</Link>

Please note that for state value which starts with {{, the outer curly braces is for saying it is a JSX code and the inner { is to define a javascript object.

add comment
×

Login

No account?
Terms of use
Forgot password?