javascript - 在从 getStaticProps 返回的组件中获取未定义的道具
问题描述
我从 getStaticProps 返回了 json 响应,控制台将其记录在 getStaticProps 中以验证正确的 json 响应。所以, fetch 工作正常,我从 API 得到正确的响应。
import Layout from '../components/layout';
import fetch from 'isomorphic-unfetch';
const Index = ({data}) => {
console.log(data)
return (
<Layout>
<div>
<h1>Welcome to Next Application</h1>
<h3>Users List</h3>
{data ?
data.map((item, i) => {
return (
<li key={i}>{item.name}</li>
)
}):
<span>Loading...</span>
}
</div>
</Layout>
);
}
export const getStaticProps = async () => {
const response = await fetch(`https://jsonplaceholder.typicode.com/users`);
const data = await response.json();
console.log(data);
return {
props:{
data
}
}
}
export default Index;
获取索引组件中未定义的数据。我错过了什么?
我的输出 - https://ibb.co/Ns9143C Github - https://github.com/ho-dor/next-poc
解决方案
问题出在您的自定义应用程序文件中,如果您删除自定义应用程序包装器,您的问题将解决,但如果您想保留自定义应用程序包装器,只需_app.js
像这样更新:
import App from 'next/app';
const MyApp = ({ Component, props }) => {
return (
<div className="MyApp">
<p>_app.js file</p>
<Component {...props} />
</div>
);
};
MyApp.getInitialProps = async (appContext) => {
// calls page's `getInitialProps` and fills `appProps.pageProps`
const appProps = await App.getInitialProps(appContext);
return { ...appProps };
};
export default App;
有关更多信息,请在此处查看:自定义应用程序 - NextJS
推荐阅读
- django - Django import-export 在导出到 csv 时将 manytomany 显示为名称而不是 id
- python - 如何通过创建具有多个输入的 LSTM 来修复“类层实例”错误?
- javascript - Nock 不返回设置的标头
- python - 为什么我的 Path.expanduser 不断收到以下错误消息?['str' 对象没有属性 '_drv']
- javascript - 在反应中从另一个组件访问 const 的方法
- android - 为现有项目启用注释处理 Android studio 3.3
- c# - Serenity 模板部分视图未呈现数据
- firefox - GitHub Gist 创建和编辑在 Firefox 中不起作用?
- python - 网页抓取模拟器内容
- node.js - 如何使用 Google 服务帐户代替 oAuth2Client 来使用 Google Apps API?