Avatar
あ、そういえば、同じ型のものが複数の箇所で指定されてたときは(上の例みたいに同じViewに複数modifierでつけるんじゃなくて、自分から親方向にViewを辿った時に指定が複数あるとき)、一番自分に近い側のものが選ばれるんだろうと勝手に期待していましたが、確認したことなかったです。
8:54 AM
import SwiftUI struct ContentView: View { var body: some View { SubView() .environmentObject(Foo(2)) } } struct SubView: View { @EnvironmentObject var foo: Foo var body: some View { VStack { SubsubView() .environmentObject(Foo(5)) Text("\(foo.value)") } } } struct SubsubView: View { @EnvironmentObject var foo: Foo var body: some View { VStack { Text("\(foo.value)") } } } final class Foo: ObservableObject { @Published var value: Int init(_ value: Int) { self.value = value } }
8:54 AM
結果 5 2 期待通り