Avatar
Avatar
koher
struct FooView: View { @State var user: User var body: some View { Checkbox(isOn: $user.isPublic) } } struct Checkbox: View { @Binding var isOn: Bool var body: some View { Button { isOn.toggle() } label: { Image(isOn ? "Checkbox-On" : "Checkbox-Off") } } } とした場合、 user.isPublic が更新されるとそれを @Binding で保持する Checkboxbody が再実行されるのではなく、 user@State で保持する FooViewbody が再実行されます。その結果として、 Checkbox(isOn: $user.isPublic) が新しい isPublic に対して実行され、 Checkbox が更新されます。
渡した先のビュー(Checkbox)だけ更新されると思っていました、、、 大変よく分かりました。ありがとうございます! 最後に、これらの情報を得た学習リソースがあれば教えていただけると幸いです。勉強したいです🔥
👍 1