将getInitialProps与getDefaultProps(React)结合使用的正确方法是什么

时间:2018-11-08 18:57:57

标签: javascript reactjs

在react组件中,您可以同时具有以下两个功能。

  getInitialProps() {
    return fetchProps();
  };
  getDefaultProps() {
    return this.defaultProps;
  }

可以在反应生命周期中调用 getDefaultProps 吗?

我想您想在 getInitialProps 中进行一些尝试,只要 fetchProps 失败,它就会捕获 defaultProps :< / p>

  getInitialProps() {
    try{
      return fetchProps();
    } catch(error){
      return getDefaultProps();
    }
  };

对我来说似乎很奇怪。

1 个答案:

答案 0 :(得分:0)

我知道getInitialProps()用于异步行为,而getDefaultProps()更多地用于为组件设置道具,以便它仍可以在通过道具之前呈现。

所以回答您的问题我不这么认为。呈现后,您将无法调用getDefaultProps()。

这将是使用getInitialProps()的示例

Page.getInitialProps = () => {
  return fetch('https://api.github.com/repos/developit/preact')
    .then(res => res.json())
}

虽然getDefaultProps()会像这样工作

getDefaultProps: function() {
return {
  name: 'Mary'
};