我正在做一个Next.js项目,我已经添加了ESLint到它,所以我必须添加PropTypes到每个文件。以下是道具所在的app.jsx
组件,Component, pageProps
:
const App = ({ Component, pageProps: { session, ...pageProps } }) => {
const getLayout = Component.getLayout || ((page) => page);
return (
<ThemeProvider theme={theme}>
{globalStyles}
{getLayout(<Component {...pageProps} />)}
</ThemeProvider>
);
};
的PropType的Component
是知道的,但有没有人知道我们如何定义一个PropType的pageProps
知道该项目是在JavaScript不是TypeScript?
pageProps
可能会根据您使用getServerSideProps
,getStaticProps
等获取的内容而更改。
根据NextJs文档:
pageProps是一个预加载初始道具的对象你的页面通过我们的数据获取方法之一,否则它是空的对象。
MyApp.propTypes = {
Component: PropTypes.elementType.isRequired,
pageProps: PropTypes.shape({
// your custom props here
}),
};