我使用的是Next.js 13&;Strapi,我想用getStaticProps
制作一个Menu
组件.
我在_app.js
中创建并添加了一个Layout
组件.
以及Layout
内部的Menu
组件.
我测试了getStaticProps
内部的代码,它返回预期的json响应.
_app.js:
import '../styles/globals.css'
import 'bootstrap/dist/css/bootstrap.css'
import Layout from './components/Layout'
export default function App({ Component, pageProps }) {
return (
<Layout>
<Component {...pageProps} />
</Layout>
)
}
Layout.js
import Menu from './Menu'
import Footer from './Footer'
export default function Layout({ children}) {
return (
<>
<Menu />
<main>{children}</main>
<Footer />
</>
)
}
Menu.js:
const Menu = async ({ dataMenu }) => {
console.log(dataMenu);
const renderMenuItems = (items) => {
return items.map((item) => (
<li key={item.id}>
<Link href={item.attributes.url}>
<a>{item.attributes.title}</a>
</Link>
{item.attributes.children.data.length > 0 && (
<ul>{renderMenuItems(item.attributes.children.data)}</ul>
)}
</li>
));
};
return (
<nav>
<ul>{renderMenuItems(dataMenu)}</ul>
</nav>
);
};
export async function getStaticProps() {
const urlParamsObject = {
nested: "",
populate: "*",
}
const queryString = qs.stringify(urlParamsObject);
const { data } = await api.get(`/menus/1${queryString ? `?${queryString}` : ""}`);
const dataMenu = data.data;
return { props: { dataMenu } };
}
当我try 对dataMenu
个数据进行console.log()
次运算时,我得到了undefined
个数据.谁能告诉我为什么我会期待这个问题?
谢谢.