网站教程中的 Next.js 路由错误

Posted

技术标签:

【中文标题】网站教程中的 Next.js 路由错误【英文标题】:Next.js routing error in website tutorial 【发布时间】:2020-02-08 23:40:01 【问题描述】:

对于我来说 next.js 教程https://github.com/zeit/next-learn-demo.git 在第二阶段“动态路由”之后的所有阶段都有问题。即使在之后的阶段 3 到 8 的阶段中,动态路由应该已经开始工作了。

我认为问题在于文件 .next/routing 似乎丢失了。

因此教程要求实现代码:

import  useRouter  from 'next/router';

const router = useRouter();

什么都不做。

导致点击链接出错:

screenshot of next.js browser syntax error inspection

为什么路由文件不在 .next 文件夹中?

react 版本是 16.10.2(今天通过教程说明安装) 代码的格式是教程复制粘贴的内容。 (没有打破钩子规则) 没有反应重复。

【问题讨论】:

console.log(router) 看看会带来什么 console.log(router) VM38:1 Uncaught ReferenceError: router is not defined at :1:13 似乎不可用 你可以在代码中写这个控制台行而不是写控制台,即在const router = useRouter();之后 当我这样做时,控制台不会竞争任何东西。控制台中还有这个: index.js:1 Fetch API cannot load file:///C:/WINDOWS/system32/next-learn-demo/8-deploying/node_modules/next/dist/client/router.js .对于 CORS 请求,URL 方案必须是“http”或“https”。建议由于这个原因它没有加载,以及其他 5 个 api 获取请求 ***.com/questions/50445639/… 【参考方案1】:

我认为您在类组件中使用了 useRouter()。 useRouter 是一个钩子,仅在功能组件中使用。

在我们与Router HOC 一起使用的类组件中。 “路由器”对象可作为

访问
this.props.router

【讨论】:

以上是关于网站教程中的 Next.js 路由错误的主要内容,如果未能解决你的问题,请参考以下文章

在生产中构建 Next.js 静态网站时获取错误

在生产中构建 Next.js 静态网站时获取错误

Next.js + 云开发Webify 打造绝佳网站

如何保护 Next.js next-auth 中的路由?

Next.js 在页面路由时保持滚动位置

如何不在 Next.js 动态路由之间保持状态?