我有一个父组件,它具有:
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不会更新数据。
确保数据始终是最新的最佳方法是什么?
答案 0 :(得分:2)
从docs看notifyOnNetworkStatusChange
:
让我们回到上一节中的重新获取示例。如果 您单击refetch按钮,您会看到该组件没有 重新渲染直到新数据到达。如果我们要表明要怎么办 用户正在重新获取照片?
我认为这与您的确切用例有关。然后,您将从networkStatus
中添加useQuery
作为useEffect
依赖项。