如何在next.js中重新获取客户端的api数据?

时间:2018-02-07 16:05:10

标签: javascript node.js reactjs next.js

我需要在状态改变后从api重新加载数据。是否可以在客户端使用getInitialProps再次获取数据?

1 个答案:

答案 0 :(得分:2)

为什么不在componentDidMount上获取数据?

componentDidMount() {
  yourAPI.fetch().then((pFetchData) => {
    this.setState({data: pFetchData});
  });
}

实际上,componentDidMount是调用获取数据的最佳位置,原因有两个:

  1. 使用DidMount可以清楚地知道数据直到之后才会被加载 初始渲染。这会提醒您设置初始状态 正确,所以你不会导致导致的未定义状态 错误。
  2. 如果您需要在服务器上呈现您的应用 (SSR /同构/其他流行语),componentWillMount实际上是 两次调用“一次在服务器上,再一次在客户端上”,这是 可能不是你想要的。将数据加载代码放入 componentDidMount将确保仅从中获取数据 客户端。
  3. https://www.codeproject.com/Articles/1177776/Where-to-Fetch-Data-componentWillMount-vs-componen

    希望有所帮助:)