View間共通変数

@EnvironmentObject

全View間で使えるグローバル変数的なものです。
変数に変更が掛かるとすべてのViewで連動して変更されます。
注意点として、最上位のViewに.environmentObject()で渡してあげる事とEnvironmentObjectをインスタンス化したらすべてのプレビューの所でもインスタンス化してあげる事。
あとはグローバル変数の危険性を知っておくと良いかもしれません、似たようなものなので。

@StateObject

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

コメント

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