отправить опору после запроса Аполлона - PullRequest
0 голосов
/ 15 мая 2018

После обновления клиента apollo я не могу отправить реквизит родительскому компоненту. Что я делаю, это

  <Query query={GET_DOG_PHOTO} variables={{ breed }}>
   {({ loading, error, data }) => {
  if (loading) return null;
  if (error) return `Error!: ${error}`;

  return (
    <img src={data.dog.displayImage} style={{ height: 100, width: 100 }} />
  );
}}

Мне нужно отправить функцию после выполнения запроса

Есть идеи?

1 Ответ

0 голосов
/ 15 мая 2018

Здесь проблема github в реакции-аполлоне, требующая возможности передать обратный вызов запросу: https://github.com/apollographql/react-apollo/issues/208

Обходной путь, поднятый в этой проблеме, заключается в основном в использовании componentWillReceiveProps (компонентDidUpdate, вероятно, был бы тем, чтовы бы использовали сейчас, или getDerivedStateFromProps, если вы просто хотите установить состояние).Немного раздражает, потому что вам придется передавать значение загрузки Query в качестве реквизита, чтобы вы могли войти в жизненный цикл.Вот как то так

<Query query={GET_DOG_PHOTO} variables={{ breed }}>
  {({ loading, error, data }) => (
    <LifecycleComp loading={loading} error={error} data={data} />
  )}
</Query>

class LifecycleComp extends React.Component {
  componentDidUpdate(prevProps) {
    if (prevProps.loading && !this.props.loading) {
      // perform callback
    }
  }

  render() {
    if (loading) return null;
    if (error) return `Error!: ${error}`;

    return (
      <img ... /> 
    )
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...