开发者问题收集

无法在 React Router DOM V6 中使用 useNavigate() 传递状态

2022-03-23
7828

嗨,我试图使用 useNavigate 将一个值传递给另一个页面,当按下按钮(按钮 B)时,它会调用该函数,该函数包含我从 useNavigate() 钩子中获得的导航函数,然后我使用 useLocation() 钩子来获取该值。

对我来说很奇怪, console.log(score) 打印出正确的分数值,但导航函数无法传递该值,它只是在另一端显示 null。我想问为什么会这样? 以下是我的代码。

const ComponentName = () => {
    const [score, setScore] = React.useState(0);

    const handleNavigate = () => {
        console.log(score);
        navigate("/nextPage", {state: score})
        
    }

    return(
    {someCondition
         ? <Button variant="contained"}>A</Button>
         : <Button variant="contained" onClick={handleNavigate}>B</Button>}

    )
}

提前致谢。

1个回答

显然,问题在于值 0。

也许有一个 if 语句,如果 0 则返回空状态...

一种解决方案是将分数作为对象传递,例如:

navigate('/nextPage', { state: { score } })

Gabriel Alcântara
2022-03-23