🚨

Joy UI (MUI Joy)が React19でのelement.refの変更に対応できていない

に公開

背景

Joy UI が React19に対応できていない箇所があることが分かりました。

調査したこと

エラー内容の詳細

React18をReact19に上げたところ以下のエラーが表示されました。
エラーの原因を探るとJoy UI のコードに問題があることが分かりました。

  • react:19.1.0
  • react-dom: 19.1.0
  • mui/joy: 5.0.0-beta.52

Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.

こちらに関係しているreactの変更はreact19の公式で記載されています。

https://react.dev/blog/2024/04/25/react-19-upgrade-guide#deprecated-element-ref

<ForwardRef(Modal2)>

エラーの箇所を見ると以下を指していました。

	<Modal open={true} onClose={onClose}>

デバッグで該当のコードを見ます。

以下をクリックすると次のコードに遷移しました。

http://localhost:3333/node_modules/.vite/deps/@mui_joy.js?v=4701402b

つまり Joy UI の Modal コンポーネントのコード内でエラーが起きていることが分かりました。

Joy UI の Github

Joy UI の Github は以下です。

https://github.com/mui/material-ui/issues

https://github.com/mui/material-ui/pulls

joy ui ref 等で調べましたが現在対応している情報がつかめませんでした。

Joy UI の StackOverflow

https://stackoverflow.com/questions/tagged/material-ui

こちらでも現在対応している情報がつかめませんでした。

捕捉

material-ui だとこの問題は対応されているみたいです。

https://github.com/mui/material-ui/issues/42604

JoyUIにissueを投稿しました

https://github.com/mui/material-ui/issues/46266

issueを投稿してみました。
以下の記事にも内容を記載していますのでご覧ください!

https://zenn.dev/immedio/articles/15c1b953696841

今後の対応

社内のデザインシステムを導入しつつ、足りない部分は Joy UI 以外のライブラリを導入する案が有力です。
Joy UI が本件の対応をするか今後もチェックしたいと思います。

immedioテックブログ

Discussion