【发布时间】:2021-05-12 08:11:29
【问题描述】:
我希望能够从 API、服务器端检索数据,并将其加载到 React 上下文中,以使其可用于我的应用程序中的任何组件。我尝试了各种各样的事情,但似乎没有什么能让我完全按照自己的意愿去做。我尝试过的一些事情包括:
getServerSideProps - 这允许我在服务器端检索数据,但只存在于页面组件中,所以如果我希望在每个页面上都可以使用它,并且我不知道我的用户将登陆哪个页面,我'需要为此添加逻辑到每一页。
getInitialProps in _app.js - 我可以将它添加到 _app.js 组件中,该组件将在服务器端运行,并且可以通过上下文提供程序使其对所有组件可用,但问题是它在每个组件上运行页面,即使在客户端导航时也是如此。我希望能够调用 API 一次且仅一次,但这似乎不允许这样做。
getInitialProps in _document.js - 我可以将它添加到仅在服务器上运行的 _document.js 组件中,这似乎解决了每个页面都调用它的问题,但我不知道如何存储它从那里开始在 React 上下文中。事实上,我似乎无法弄清楚如何在任何地方访问这些数据。看起来 _document.js 中的 getInitialProps 在 _app.js 中被调用 after getInitialProps,所以我不确定当我在 _app 中时是否可以使用从 _document.js 中的 getInitialProps 生成的值。 js.
如果我在客户端调用 API,我可以通过多种方式完成这项工作,但这不适用于我的用例,因为当客户端使用来自API。
有没有人想出解决这个用例的方法?
【问题讨论】:
-
我很高兴回答这个问题。
标签: javascript next.js