nextjs getInitialProps getDerivedStateFromProps - PullRequest
0 голосов
/ 02 июля 2018

У меня есть сценарий, хочу ли я получить выгоду от вызова getInitialProps (асинхронный вызов, выполненный со стороны сервера или клиента), но мне нужно сохранить результат этого запроса в состоянии State компонента React вместо класса.

Я попытался сначала вызвать getInitialProps , а затем вызвать getDerivedStateFromProps , чтобы сохранить в состоянии данные, которые были введены при вызове функции Intial props.

Может ли это быть плохой практикой или привести к некоторым проблемам при запуске рендеринга на стороне сервера?

Пример:

static async getInitialProps() {    
  const data = await getUserCollection();

  return {
    userCollection: data,  
  }
}

static getDerivedStateFromProps(nextProps, prevState) {
  if(nextProps.userCollection !== prevState.myStateCollection) {
    return ({
      myStateCollection: nextProps.userCollection,
    })
  } else {
    return null;
  }
}

Определения состояния и реквизита (машинопись):

interface Props {
  userCollection: UserEntity[],
}

interface State {
  myStateCollection : UserEntity[];
}
...