【问题标题】:UseQuery doesn't work after redirect with useMutations by apollo reactUseQuery 在通过 apollo react 使用 useMutations 重定向后不起作用
【发布时间】: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)通信不起作用。

【问题讨论】:

    标签: javascript reactjs graphql apollo


    【解决方案1】:

    我修好了。有用。我将 fetchPolicy 添加到 useQuery。

    export default () => {
      const { data, loading, error } = useQuery(allStock, {
        fetchPolicy: "network-only",
      });
      const history = useHistory();
      console.log(data, loading, error);
    

    【讨论】:

      猜你喜欢
      • 2020-01-02
      • 2021-08-31
      • 2020-10-30
      • 2018-08-15
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-14
      相关资源
      最近更新 更多