使用Apollo Client进行useMutation后未触发useEffect

问题描述 投票:0回答:1

我有一个具有以下内容的父组件:

  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不会更新数据。

确保数据始终为最新的最佳方法是什么?

javascript reactjs graphql apollo react-apollo
1个回答
1
投票

notifyOnNetworkStatusChangedocs

让我们回到上一节中的重新提取示例。如果您单击refetch按钮,您会看到该组件没有重新渲染直到新数据到达。如果我们要表明要怎么办用户,我们正在重新获取照片?

我认为这与您的确切用例有关。然后,您将从networkStatus中添加useQuery作为useEffect依赖项。

© www.soinside.com 2019 - 2024. All rights reserved.