希曼日记

查询

点击查询, 利用query来控制何时请求, 通过boolean条件来控制queryFn的执行 https://tanstack.com/query/latest/docs/framework/react/guides/disabling-queries#typesafe-disabling-of-queries-using-skiptoken

const getUser = async (username: string, password: string) => {
  try {
    const res = await fetch("http://localhost:8080/users/login", {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({ username, password }),
    });
    const data: LoginResponse = await res.json();
    return data;
  } catch (error) {
    throw new Error(error);
  }
};

export default function Login() {
  const [username, setUsername] = useState<string>("");
  const [password, setPassword] = useState<string>("");
  const [query, setQuery] = useState<boolean>(false);

  const { isError, data, error } = useQuery({
    queryKey: ["login", username, password],
    queryFn: query ? () => getUser(username, password) : skipToken,
  });

  if (isError) {
    return <span>Error: {error.message}</span>;
  }

  const handleLogin = () => {
    setQuery(true);
  };

  if (data) {
    console.log("data", data);
  }

  return (
    <>
    </>
}