这实际上是做什么的?
pageProps =等待Component.getInitialProps(ctx)
它看起来像“ pageProps”,这只是一个空对象
import App, {Container} from 'next/app'
import React from 'react'
export default class MyApp extends App {
static async getInitialProps ({ Component, router, ctx }) {
let pageProps = {}
if (Component.getInitialProps) {
pageProps = await Component.getInitialProps(ctx)
}
return {pageProps}
}
render () {
const {Component, pageProps} = this.props
return <Container>
<Component {...pageProps} />
</Container>
}
}
答案 0 :(得分:3)
getInitialProps
允许您调出获取在服务器上呈现组件时想要的道具。
例如,我可能需要显示当前天气,并且我希望Google为该页面的SEO索引信息。
要实现这一目标,您需要执行以下操作:
import React from 'react'
import 'isomorphic-fetch'
const HomePage = (props) => (
<div>
Weather today is: {weather}
</div>
)
HomePage.getInitialProps = async ({ req }) => {
const res = await fetch('https://my.weather.api/london/today')
const json = await res.json()
return { weather: json.today }
}
export default HomePage
第pageProps = await Component.getInitialProps(ctx)
行调用了该初始函数,以便HomePage
组件被该天气API调用所产生的初始props实例化。