-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BookmarkButtonがRules of Hooksに違反していてエラーが出る #7629
Comments
@dowdiness 上記Issueはまだ本番環境へリリースされていませんが、development環境では問題なく表示されています。 なぜローカルのみでエラーが発生してしまうのかわかりませんが、報告まで。 |
上記は"development環境"と"ローカル"を同じ意味で使っていますでしょうか? 正しくは、 production環境(本番)、staging環境、development環境(ローカル)、test環境 という感じになると思います。 |
@komagata |
すいません言葉不足で書いていませんでしたが、このエラーはmainではない下記のPRのコメントのブランチで起こりました。 エラーが起こるようになった原因はおそらく追加したコンポーネントで新たにuseSWRを呼び出しているからです。細かくは書きませんがuseSWRはkeyによってアプリ全体でデータ(とキャッシュ)の共有をしています。useSWRの呼ばれる数が増えた影響でhookの呼ばれる順番が変わってしまったのだと思います。 実際にエラーメッセージを見たところ、22番目のhookの前回のレンダーがundefinedなのに次のレンダーではuseEffectになっています。 ちなみにRule of hooksに違反している限りhookの呼び出し順は保証されなくなる危険性があるのでエラーが出る出ないに関わらずに修正はするべきです。 |
@dowdiness |
このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。 |
このissue|PRはstaleラベルを付けた後7日間更新がないためcloseしました。 |
概要
自分の手元の開発環境でBookmarkButtonが含まれているページを開くとエラーが出てBookmarkボタンが表示されませんでした。
実際にBookmarkButtonを確認してみると、Rules of Hooksで定義されているルールの
に違反しているコードがありました。
試しに手元でルールを守ったコードに変えたらエラーが出なくなりました。
ついでに
eslint-plugin-react-hooks
を使うようにeslintに設定を追加したいです。https://www.npmjs.com/package/eslint-plugin-react-hooks
再現手順
期待される振る舞い
Rules of Hooksを守る。
スクリーンショット
環境
The text was updated successfully, but these errors were encountered: