下面是MyApp的getInitialProps方法。
MyApp.getInitialProps = async ({ctx}) => {
const { siteHeaderCollection } = await getHeaderData(ctx.query.lang)
const { siteFooterCollection } = await getFooterData(ctx.query.lang)
return {
locale: ctx.query.lang,
header: siteHeaderCollection,
footer: siteFooterCollection,
}
}
我需要将slug传递给这个getInitialProps方法。任何人都可以请指导如何通过从路径url获取的参数
2条答案
按热度按时间hmtdttj41#
将slug作为参数传递给
getInitialProps
方法,如在此代码片段中,
slug
是从ctx.query
中提取的,假设slug参数作为URL路径的一部分传递。然后,您可以使用这个slug
变量,通过getHeaderData
和getFooterData
函数获取适当的页眉和页脚数据,并将lang
和slug
作为参数传递。确保相应地更新
getHeaderData
和getFooterData
函数,以接受slug
参数并根据slug值获取数据。q3qa4bjr2#
查看NextJS documentation,您可以发现以下内容:
getInitialProps是一个异步函数,可以添加到页面默认导出的React组件中。在页面转换期间,它将同时在服务器端和客户端运行。函数的结果将作为props转发给React组件。
这意味着,在
getInitialProps
函数中返回的任何内容都将作为props
传递到该组件中。(在您的情况下,为locale
、header
和footer
)小提示:
getInitialProps
是一个传统的API。NextJS建议使用getStaticProps
或getServerSideProps
。您可以从上下文访问当前slug:
并将其添加到返回对象中