LoginSignup
2
0

More than 1 year has passed since last update.

[日本語訳]SWR ドキュメンテーション 条件付きのデータフェッチ

Last updated at Posted at 2021-01-04

追記: 2021年6月8日

SWR公式日本語訳ページが追加されたので、そちらをご覧ください

このページは Conditional Fetching – SWRの日本語訳です
SWR日本語訳全体についてはSWR 日本語訳をご覧ください

条件

null を使用するか、key としての関数を渡して、条件付きのデータフェッチをします。関数がスローするか、 falsy な値を返す場合、SWRはリクエストを開始しません。


// 条件付きフェッチ
const { data } = useSWR(shouldFetch ? '/api/data' : null, fetcher)

// ...または falsy な値を返す
const { data } = useSWR(() => shouldFetch ? '/api/data' : null, fetcher)

// ...または user.id が定義されていないのでエラーをスローする
const { data } = useSWR(() => '/api/data?uid=' + user.id, fetcher)

依存

SWRを使用すると、他のデータに依存するデータをフェッチすることもできます。 これにより、可能な限り最大の並列処理(ウォーターフォールを回避)と、次のデータフェッチ実行に必要なダイナミックデータの連続したフェッチが保証されます。


function MyProjects () {
  const { data: user } = useSWR('/api/user')
  const { data: projects } = useSWR(() => '/api/projects?uid=' + user.id)
  // 関数を渡すとき、SWRは戻り値を `key`として使用します。
  // 関数が falsy な値か(エラーの)スローを返す場合、SWRは一部の依存関係の準備ができていないことを認識します。
  // このケースでは、`user` が読み込みされていないときに `user.id` はエラーをスローします。

  if (!projects) return 'loading...'
  return 'You have ' + projects.length + ' projects'
}
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0