如何解决NextJS如何获得动态页面的规范URL?
在我使用nextjs 9.4之前 next-absolute-url程序包,它在getInitialProps中提供原始信息。
nextsjs 9.5 由于使用自动优化,我们使用getServerSideProps和getStaticProps。该软件包不支持这些方法,并且返回undefined。
我的问题是,如果我们具有动态页面,则可以使用next-seo说post / [pid] .tsx,我需要使用规范的url,我该如何使用getStaticProps或getServerSideProps生成
。还有另一个问题在这里没有回应 How to access canonical URL in Next.js with Automatic Static Optimization turned on?
解决方法
如果您需要从网址中获取 pid ,则需要在动态路由页面中使用 router.query ,
这会给你一个像
{"pid":123}
// post/[pid].tsx
import { useRouter } from 'next/router'
getStaticProps(){
const router = useRouter();
const pid = router.query.pid;
return {props:{pid}}
}
我在此网址中找到了完美的文档-https://nextjs.org/docs/routing/dynamic-routes
,因此,在更新(从应用程序中删除Redux)之后,next-absoulute-url在getServerSideProps上确实起作用。
如果应用程序状态不是太复杂,则带有Hooks的React-context API可以很好地工作。在这里阅读 https://kentcdodds.com/blog/application-state-management-with-react
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。