🧙
祝!Valtio v2リリース
本当はReact 19と同時にリリースするつもりだったのですが、もう待ちきれないので、リリースしちゃいました。Valtio v2でpromiseを使う場合はReact 19の use
を使う必要があるのですが、React 18向けの react18-use を作ったので、当面はそれで凌いでいただこうと思います。
本当はReact 19と同時にリリースするつもりだったのですが、もう待ちきれないので、リリースしちゃいました。Valtio v2でpromiseを使う場合はReact 19の use
を使う必要があるのですが、React 18向けの react18-use を作ったので、当面はそれで凌いでいただこうと思います。
Discussion
Valtio v2のリリースおめでとうございます🥳
早速 v1 から v2 への移行を考えているのですが How to Migrate to v2 from v1 に
の様な
deepClone
に関するサンプルコードがありますが、このコードではproxy(obj)
のobj
は再利用されていないためと記載しても大丈夫なケースで
deepClone
が必要となるケースは、下記の様に元となるオブジェクト自体を利用していく場合、という認識なのですが合っていますでしょうか?ありがとうございます。はい、合ってます。混乱の元でしたね。
GitHubの方でも指摘されて、 https://github.com/pmndrs/valtio/pull/939 で直そうとしてますので、確認していただけると幸いです。
ご回答ありがとうございます🙇
v1 の時に
state
の値リセットの為に、下記defaultState
相当の元となるオブジェクトに初期値を残しておく使い方をしていたので、v2 移行後はdeepClone
が必要そうですね。基本的にはそうなります。v1では暗黙的に内部でdeepClone相当のことをしていました。
厳密に言えば、上記の例はオブジェクト自体は再利用してないので、deepCloneしなくても動きます。ただ、将来の拡張を考えると、deepClone(defaultState)しておくほうが安全かもしれません。