如何将道具从 Next.js 中的 getInitialProps 传递到所有页面

时间:2021-02-01 07:46:20

标签: next.js

我想在我加载的所有页面中获得相同的道具。我尝试使用 _app.js 这样做:

export default function MyApp({ Component, pageProps }) {
    return <Component {...pageProps} />
}
    
MyApp.getInitialProps = async (appContext) => {
    return {
        props: {
            testApp: ['1', '2', '3'],
            testApp2: '222'
        }
    }
}

但它不起作用。我得到一个空对象:

const Error = (props) => {
    console.log(props);

    return (
        <div className="error-page">
            ...
        </div>
    )
}

我做错了什么?

1 个答案:

答案 0 :(得分:2)

getInitialProps 中返回对象的结构与 getServerSidePropsgetStaticProps 略有不同 - 您不需要额外的 props 嵌套,您只需返回对象与道具。

MyApp.getInitialProps = async (appContext) => {
    return {
        testApp: ['1', '2', '3'],
        testApp2: '222'
    }
}