Nextjs:每次页面加载时渲染来自 GET 请求的数据

Dan*_*rds 5 static reactjs server-side-rendering next.js

我正在尝试将 GET 请求中的数据加载到我的 Next.js 站点上的表中。当我在本地运行它时它工作正常,但是当我将它发布到静态站点时,它不会每次都更新表。

我发现当您将数据导出到静态站点时,它将数据拉入静态 HTML 页面,但我希望它每次都将数据拉入表中。如何确保它仅使用 GET 请求中的数据而不是静态 HTML 页面上的数据填充数据?

我使用以下代码来执行获取请求:

static getInitialProps = async function() {

    var data;
    await axios.get('https://myapi.com')
        .then(res => {
            data = res.data;
        });
    return {
        items: data.TableData
    }

}
Run Code Online (Sandbox Code Playgroud)

我希望它每次都会提取数据,但它只在我导出数据时才提取数据,此后它不会改变。

Tho*_*lle 2

如果你想在运行时获取数据,你可以使用componentDidMount生命周期钩子并将其放在组件状态中。

async componentDidMount() {
  const res = await axios.get('https://myapi.com')
  this.setState({ items: res.data });
}
Run Code Online (Sandbox Code Playgroud)