Reet-Apollo Query refetch заставляет детей отключаться - PullRequest
0 голосов
/ 09 декабря 2018

У меня есть компонент отображения, завернутый в компонент Query для получения данных из запроса GraphQL.После того, как я выполню мутацию, я должен повторно получить данные, чтобы обновить магазин.Проблема состоит в том, что вызов refetch() приводит к отключению дочернего компонента, что нарушает взаимодействие и прокрутку, которую пользователь выполняет, чтобы вызвать мутацию.

Есть ли способ вызвать refetch() без неговызывая размонтирование ребенка?Если нет, есть ли лучший способ обновить магазин, который не вызовет размонтирования?Ниже приведен код с компонентом Query и его дочерним элементом.

<Query
  query={query}
  variables={{videoId}}
>
  {
    ({loading, error, data, refetch }) => {
      if (loading) 
        return <p>Loading...</p>;
      if (error) {
        console.log(error);
        return <p>Error :(</p>;
      }

      const onChange = () => {
        console.log("refetching");
        return refetch();
      }

      const {timestampCollection} = data;
      return(
          <TimestampCollection onChange={onChange} player={this.state.player} timestampCollection={timestampCollection[0]} />
      )
    }
  }
</Query>

Спасибо всем за помощь!

1 Ответ

0 голосов
/ 14 марта 2019

Попробуйте использовать fetchPolicy="network-only", как показано ниже.

<Query
  query={query}
  variables={{videoId}}
  fetchPolicy="network-only"
>
...