Установить начальное состояние с помощью клиента Apollo - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь установить начальное состояние переменной состояния реакции, используя реквизит, созданный с помощью клиента apollo с graphql.

 this.state = {data:myFunc(this.props.data};

Проблема в том, что this.props.data пуст, когда состояниеустановлено.Я посмотрел на настройку в методах жизненного цикла, но она все еще возвращается пустой.Только когда функция вызывается в render (), я получаю вывод.

1 Ответ

0 голосов
/ 25 января 2019

Я предполагаю, что this.props.data загружается асинхронно и еще не загружается, когда вы пытаетесь присвоить его this.state (я предполагаю в конструкторе).

Хорошее место, чтобы сделать это, было бы вgetDerivedStateFromProps:

static getDerivedStateFromProps(props, prevState) {
  if (props.data && !prevState.data) {
    // Only return this when props.data has just loaded. 
    // Figure out the best way to determine that for your code.
    return { data:  myFunc(props.data) };
  }
  return {};
}

https://reactjs.org/docs/react-component.html#static-getderivedstatefromprops

...