【问题标题】:router.push() is not working as expected NextJSrouter.push() 没有按预期工作 NextJS
【发布时间】:2022-12-31 17:13:08
【问题描述】:

我试图将用户重定向到搜索结果,但 router.push() 显然不起作用。我将 url 更改为不存在的页面并且路由发生了变化,但是当涉及到使用已创建页面的 url 时,没有任何反应。

我试过做这样的事情,但它也不起作用。

import { useRouter } from 'next/router';
const router = useRouter();

const search = () => {
    router.push('/search');
    };
}

【问题讨论】:

  • 你能显示错误吗?
  • 你如何调用 search() 函数?
  • @Fr0z3n7 <button onClick={search} className={"btn"}>Search</button>
  • 您好,请查看答案stackoverflow.com/a/57474576/7369564。我希望这有帮助。
  • @Saurabh 是的。我在这里进一步解释了我的问题link

标签: reactjs next.js router


【解决方案1】:

如果您正在使用Nextjs13,请注意从next/navigation导入useRouter

❌ import { useRouter } from 'next/router';

到:

✅ import { useRouter } from 'next/navigation';

Documentation link

【讨论】:

  • 您是否有指出这一点的文档链接?
  • 好点子。添加了链接。
【解决方案2】:

这里的解决方案是通过执行以下操作来防止默认功能:

import { useRouter } from 'next/router';
const router = useRouter();

const Search = (e) => {
        e.preventDefault()
        router.push("/search");
    };

【讨论】:

    猜你喜欢
    • 2019-12-18
    • 2023-01-18
    • 2021-10-19
    • 2020-03-18
    • 2012-06-14
    • 2014-11-15
    • 1970-01-01
    • 2012-07-02
    • 2011-09-07
    相关资源
    最近更新 更多