useEffect не вызывается после useMutation с использованием клиента Apollo - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть родительский компонент, который имеет:

  const { loading, error, data } = useQuery(GET_DATA, {
    notifyOnNetworkStatusChange: true
  });

  // Handle data
  useEffect(() => {
    if (loading || error) return;
    setZendeskData(data);
  }, [loading, error, data]);

Тогда в дочернем компоненте у меня есть:

  const [createItem] = useMutation(CREATE_SESSION, {
    refetchQueries: [{ query: GET_DATA }]
  });

Когда вызывается createItem и выполняется refetchQuery, useEffect в родительский компонент не обновляет данные.

Как лучше всего убедиться, что данные всегда самые свежие?

1 Ответ

2 голосов
/ 21 февраля 2020

Взгляните на notifyOnNetworkStatusChange из документов :

Давайте вернемся к нашему примеру повторного получения из предыдущего раздела. Если вы нажмете кнопку «Обновить», вы увидите, что компонент не рендерится до тех пор, пока не поступят новые данные. Что, если мы хотим указать пользователю, что мы перезагружаем фотографию?

Я думаю, это относится к вашему конкретному случаю использования. Затем вы добавили бы networkStatus из useQuery как useEffect зависимость.

...