Javascript 如何使用全局存储实例在NextJs(getStaticProps/getstaticpath)中动态获取数据?
我是新来的Javascript 如何使用全局存储实例在NextJs(getStaticProps/getstaticpath)中动态获取数据?,javascript,reactjs,next.js,Javascript,Reactjs,Next.js,我是新来的Nextjs,现在我想知道什么是进入动态页面并从那里getStaticProps的最佳方法 我在产品页面上的每个产品片段都有这些按钮。一旦用户点击按钮,他将进入产品详细信息页面/pages/products/[id].js,传递所点击产品的一些id,以便知道使用getStaticProps在[id].js上获取什么 我不知道如何使用redux传递此id 为了在我的数据库中找到这个嵌套产品,我在我的productsReducer.js中有两个助手实例: activeCatalog:“一些
Nextjs
,现在我想知道什么是进入动态页面并从那里getStaticProps
的最佳方法
我在产品页面上的每个产品片段都有这些按钮。一旦用户点击按钮,他将进入产品详细信息页面/pages/products/[id].js
,传递所点击产品的一些id
,以便知道使用getStaticProps
在[id].js上获取什么
我不知道如何使用redux
传递此id
为了在我的数据库中找到这个嵌套产品,我在我的productsReducer.js
中有两个助手实例:
activeCatalog:“一些目录”
activeCategory:“与活动目录相关的某些类别”
因此,当我点击Products.js
中的这个信息按钮时,我会将产品id
传递给redux
,然后从数据库中获取它会非常容易,即:catalog[store.activeCatalog][store.activeCatalog][idFromProduct
如何访问getInitialProps
中的存储,以便将这3个实例从productsReducer
传递到http
请求中
Products.js
const IconPanel = ({path}) => (
<Icons>
<Link href={`/product/${encodeURIComponent(path)}`}>
<IconInner>
<FontAwesomeIcon icon={faPlusCircle} size="lg" />
<IconSpan>Info</IconSpan>
</IconInner>
</Link>
<FontAwesomeIcon icon={faShoppingBag} size="2x" />
</Icons>
);
如何将此动态URL
放置在getStaticProps/getstaticpath
@[pid].js
//ProductDetails function...
export async function getStaticProps() {
//I wanna have the dynamic route placed on the URL string below
const res = await fetch('https://meli-345234234.firebaseio.com/catalog.json')
const number = await res.json()
return {
props: {
number: number
}
}
}
export async function getStaticPaths() {
//must repeat this here as I am using a dynamic route
const res = await fetch('https://meli-345234234.firebaseio.com/catalog.json')
const data = await res.json()
return {
paths: [
{ params: { pid: '1' } },
{ params: { pid: '2' } }
],
fallback: true
};
}
//ProductDetails function...
export async function getStaticProps() {
//I wanna have the dynamic route placed on the URL string below
const res = await fetch('https://meli-345234234.firebaseio.com/catalog.json')
const number = await res.json()
return {
props: {
number: number
}
}
}
export async function getStaticPaths() {
//must repeat this here as I am using a dynamic route
const res = await fetch('https://meli-345234234.firebaseio.com/catalog.json')
const data = await res.json()
return {
paths: [
{ params: { pid: '1' } },
{ params: { pid: '2' } }
],
fallback: true
};
}