Next.js で React Suspense が使えない

react

この前、Next.js で React Suspense を使おうとしたんです。

そしたら以下のエラーが出てしまいました。

Error: ReactDOMServer does not yet support Suspense.

この方も、エラーが出て困っているようです。

以下のように switch を使えばいいようです。

[NextJS / SSR] Can’t use useRecoilValue in async selectors (ReactDOM does not yet support Suspense)
https://github.com/facebookexperimental/Recoil/issues/722

これで何で動くのか正直よくわかりませんが。。。

const userNameLoadable = useRecoilValueLoadable(userNameQuery(userID));
switch (userNameLoadable.state) {
case ‘hasValue’:
return

{userNameLoadable.contents}

;
case ‘loading’:
return

Loading…

;
case ‘hasError’:
throw userNameLoadable.contents;
}

Next.js は SSR なので、ちょっと勝手が違うのっでしょうか?
not yet support なので、そのうちサポートすると言ってるようにも判断できます。

Next.js がバージョンアップして Suspense を正式サポートするまで待った方がいいかもですね。

今日も世界は平和です。

useSWR

上記問題を解決する為に Nextjs では useSWR を使うことが推奨されています。

Next.js の開発元である vercel のライブラリです。

SWR React Hooks library for data fetching
https://swr.vercel.app

【React】useSWRはAPIからデータ取得をする快適なReact Hooksだと伝えたい
https://panda-program.com/posts/useswr

そうです。わたしがReactをシンプルにするSWRです。
https://zenn.dev/uttk/articles/b3bcbedbc1fd00

SWRを使おうぜという話
https://zenn.dev/mast1ff/articles/40b3ea4e221c36

Next.jsのuseSWRが便利だったのでuseEffectと比較してみた
https://taroosg.io/useeffect-vs-useswr

zeit製のswrがすごい
https://qiita.com/abyssparanoia/items/53c4c77e29c84b9977fd

コメント

タイトルとURLをコピーしました