UseQuery 在通过 apollo react 使用 useMutations 重定向后不起作用
Posted
技术标签:
【中文标题】UseQuery 在通过 apollo react 使用 useMutations 重定向后不起作用【英文标题】:UseQuery doesn't work after redirect with useMutations by apollo react 【发布时间】:2021-11-04 19:07:10 【问题描述】:useMutation后,用户转到其他页面。
有useQuery,但是不行。
export default () =>
const history = useHistory();
const [click, setClick] = useState(false);
const [getStockMutation] = useMutation(getStock,
variables: click: click ,
onCompleted( getStockMutation )
setTimeout(() =>
history.push("/home");
, 500);
,
);
const onClick = async () =>
setClick(true);
try
await getStockMutation();
catch (e)
toast.error("아이디와 비밀번호를 다시 확인 해 보세요.");
;
这是突变页面。如果用户单击按钮,则 getStockMutation 有效。 如果 getStockMutation 完成,转到“/home”
export default () =>
const data, loading = useQuery(allStock);
const history = useHistory();
console.log(data);
useEffect(() =>
if (data && data.allstock.length === 0)
history.push(`/getAccount`);
, [data, history]);
这是 useQuery 页面(主页)。有 useQuery(allStock) 但它不起作用。 console.log 显示 allstock:Array(0), 我在 localhost:8000/grahpql 中检查它,
"data":
"allstock": [
"id": "57",
"stockname": "LX세미콘"
]
我检查网络,只有突变(getStock)通信工作,但useQuery(allStock)通信不起作用。
【问题讨论】:
【参考方案1】:我修好了。有用。我将 fetchPolicy 添加到 useQuery。
export default () =>
const data, loading, error = useQuery(allStock,
fetchPolicy: "network-only",
);
const history = useHistory();
console.log(data, loading, error);
【讨论】:
以上是关于UseQuery 在通过 apollo react 使用 useMutations 重定向后不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如何在 react/apollo 中调用条件 useQuery 钩子
将参数传递给 react-apollo-hooks useQuery
在@apollo/react-hooks 的 useQuery 钩子中忽略了跳过参数
使用 Jest 模拟 @apollo/react-hooks useQuery
如何将 React 钩子(useContext、useEffect)与 Apollo 反应钩子(useQuery)结合起来