iOS17でクロージャ引数が1つのものは Deprecated と警告が出たりするので、
👉 onChange(of:perform:) | Apple Developer Documentation
こんなかんじで書いてました。
Text("\(count)")
.onChange(of: token) { _, newValue in
// do something ...
}
クソですね !
■ クロージャの引数
クロージャの引数なしと2つのものがあるんですね !
func onChange<V>(
of value: V,
initial: Bool = false,
_ action: @escaping () -> Void
) -> some View where V : Equatable
👉 onChange(of:initial:_:) | Apple Developer Documentation
func onChange<V>(
of value: V,
initial: Bool = false,
_ action: @escaping (V, V) -> Void
) -> some View where V : Equatable
👉 onChange(of:initial:_:) | Apple Developer Documentation
よって、引数なしのほうを使って、
フツーに以下のように書けば良かったのか。
Text("\(count)")
.onChange(of: token) {
print("\(token)")
}
なるほど。
IDE の選択肢の一番上をなんとなく選択してたのだろうと思います。
きちんと、ドキュメントを見ることって大事。
考えてみると、引数2つの記述
Text("\(count)")
.onChange(of: token) { oldValue, newValue in
// do something ...
}
は、oldValue が必要でない限り使う必要がないな。
関連ワード: apple・iOS・iPhone・mac・macOS・Swift・SwiftUI・今さら聞けない・初心者・開発