8

反応クエリの使用に問題があります。サーバーからの応答が Unauthorized である場合は常に、useQuery はフラグ status='success' および isError=false を返します。サーバーの応答ステータスは 401 で、json 応答の内容は です{ error: true, message: 'UNAUTHORIZED' }。反応クエリをカスタマイズしませんでした。

ReactQueryConfigProviderを使用していないか、呼び出しでオプションを渡して動作をカスタマイズしていません。

これは呼び出しです:

const { status, data, error } = useQuery(
  ["hotelsList", { token: token }],
  getHotels
);

そして、これはサービスです:

const getHotels = async ({ token }) => {
  const uri = process.env.REACT_APP_API_ENDPOINT_v2 + `/hotels`
  return (await fetch(uri, {
    method: "get",
    headers: {
      Authorization: "Bearer " + token,
      "Content-Type": "application/json"
    }
  })).json()
}

トークンが無効であるため、サーバーは 401 ステータス コードとカスタム json 応答で応答しています。

サーバーからの応答コードは 401 です

これは、react-query のデータ オブジェクトとエラー オブジェクトです。

useQuery によって返されるオブジェクト

4

3 に答える 3