View間共通変数

@EnvironmentObject

全View間で使えるグローバル変数的なものです。
変数に変更が掛かるとすべてのViewで連動して変更されます。
注意点として、EnvironmentObjectをインスタンス化したらすべてのプレビューの所でもインスタンス化してあげる事と、グローバル変数の危険性について理解して使うこと。

@StateObject

こちらはインスタンス化したViewの中でのみ状態変化を保持します。(View毎でインスタンス化すると別物扱いになります)
なので他のViewで変数の状態変化を共有させたい時は引数で渡す必要があります。

コメント

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