【发布时间】:2019-05-08 03:39:07
【问题描述】:
我将页眉组件添加到布局,但我不想为我想要使用 getInitialProps 的每个页面从布局发送道具到页眉
layout.js
import Header from './header'
export default ({title}) => (
<div>
<Head>
<title>{ title }</title>
<meta charSet='utf-8' />
</Head>
<Header />
{children}
</div>
)
header.js
export default class Header extends Component {
static async getInitialProps () {
const headerResponse = await fetch(someapi)
return headerResponse;
}
render() {
console.log({props: this.props})
return (
<div></div>
);
}
}
控制台:道具:{}
App.js
import Layout from './layout'
import Page from './page'
import axios from 'axios'
const app = (props) => (
<Layout >
<Page {...props}/>
</Layout>
)
app.getInitialProps = async function(){
try {
const response = await axios.get(someUrl)
return response.data;
} catch(e) {
throw new Error(e);
}
}
export default app
我想在 Header 组件中使用 get initial props 但它没有触发
【问题讨论】:
-
getInitialProps仅在您的应用程序(页面)的顶层可用,但是您可以在组件内传递道具
标签: javascript node.js next.js