インスタンスメソッド


onChange(of:perform:))


特定の値が変更したときにアクションを起動するこのビューの修飾子を追加します。




宣言


func onChange<V>(of value: V, perform action: @escaping (V) -> Void) -> some View where V : Equatable


戻り値


特定の値が変更したときにアクションを起動するビュー。


パラメータ


議論


onChange を使用して、Environment キーや Binding などの値の変更の結果として副作用をトリガーできます。


onChange はメインスレッド上で呼び出されます。メインスレッド上で長時間実行されるタスクを実行することは避けてください。value の変更に応じて長時間実行されるタスクを実行する必要がある場合は、バックグラウンドキューにディスパッチする必要があります。


新しい値がクロージャに渡されます。以前の値は、新しい値と比較するためにクロージャによってキャプチャされる場合があります。たとえば、以下のコード例では、PlayerView は古い値と新しい値の両方をモデルに渡します。


struct PlayerView: View {

var episode: Episode

@State private var playState: PlayState = .paused


var body: some View {

VStack {

Text(episode.title)

Text(episode.showTitle)

PlayButton(playState: $playState)

}

.onChange(of: playState) { [playState] newState in

model.playStateDidChange(from: playState, to: newState)

}

}

}


以下も見よ




ビューのライフサイクル


















目次
Xcode の新機能

利用可能

iOS 14.0+

macOS 11.0+

Mac Catalyst 14.0+

tvOS 14.0+

watchOS 7.0+


  • フレームワーク
  • SwiftUI

  • 宣言
  • 戻り値
  • パラメータ
  • 議論
  • 以下も見よ












  • トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ