代码之家  ›  专栏  ›  技术社区  ›  skyewasthelimit

如何使用<Link>执行类似JS React中的“window.location=”/GameOverDied“;”的操作?

  •  1
  • skyewasthelimit  · 技术社区  · 1 年前

    目前,我正在尝试用我在React中构建的游戏进行一些动画转换,我不想要的重新渲染/刷新功能 href window.location 。我该如何使用 <Link> 从…起 react-router-dom 在这方面处理?

    const handleGameOver = () => {
      if (health < 1) {
        window.location = "/GameOverDied";
      } else if (fuel < 1) {
        window.location = "/GameOverFuel";
      } else {
      }
    };
    

    我还没有尝试任何东西,因为我在其他地方都找不到我想要的答案。

    1 回复  |  直到 1 年前
        1
  •  0
  •   Drew Reese    1 年前

    Link 是一个React组件,需要将其渲染为 声明的 导航操作。使用 useNavigate 转而挂钩以发布 迫切的 来自回调的导航操作。

    实例

    import { useNavigate } from 'react-router-dom';
    
    ...
    
    const navigate = useNavigate();
    
    ...
    
    const handleGameOver = () => {
      if (health < 1) {
        navigate("/GameOverDied", { replace: true });
      } else if (fuel < 1) {
        navigate("/GameOverFuel", { replace: true });
      } else {
      }
    };
    
    ...