您不能以 static 方法访问提供程序的实例
getInitialProps,该方法在生成React树之前(当您的提供程序可用时)被调用。
我建议您将API 的 Singelton 保存在API模块中,并
getInitialProps通过常规导入在方法内部使用它。
或者,您可以将其注入到
_appgetInitialProps中的componentPage中,如下所示:
// _app.jsximport api from './path/to/your/api.js';export default class Webshop extends App { static async getInitialProps({ Component, router, ctx }) { let pageProps = {} ctx.api = api; if (Component.getInitialProps) { pageProps = await Component.getInitialProps(ctx) } return { pageProps } } render () { const { Component, pageProps } = this.props return ( <Container> <Component {...pageProps} /> </Container> ); }}// PageComponent.jsximport React, { Component } from 'react';class Code extends React.Component{ static async getInitialProps ({ query, ctx }) { const depredResponse = ctx.api.depre(query.pre); // Cannot read property 'api' of undefined return { pre: query.pre, depred: depredResponse }; } render () { return ( <div> [...] </div> ); }}export default Code;这对您有意义吗?



