Return Value
戻り値
A view that fires an action when the specified value changes.
あるビュー、それはあるアクションをこの指定された値が変化する時に開始します。
Discussion
議論
You can use onChange
to trigger a side effect as the result of a value changing, such as an Environment
key or a Binding
.
あなたは、onChange
を使ってある副作用を引き起こすことが、たとえばEnvironment
キーまたはBinding
など、ある値の変化の結果として行えます。
onChange
is called on the main thread. Avoid performing long-running tasks on the main thread. If you need to perform a long-running task in response to value
changing, you should dispatch to a background queue.
onChange
は、メインスレッド上で呼び出されます。長く動作するタスクをメインスレッド上で実行することを避けてください。あなたが長く動作するタスクをvalue
の変化に答えて実行する必要があるならば、あなたはあるバックグラウンドキューにディスパッチすべきです。
The new value is passed into the closure. The previous value may be captured by the closure to compare it to the new value. For example, in the following code example, PlayerView
passes both the old and new values to the model.
新しい値は、クロージャに渡されます。以前の値は、クロージャによってキャプチャされて、それを新しい値と比較するかもしれません。例えば、次のコード例において、PlayerView
は古いそして新しい値の両方をmodelに渡します。
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)
}
}
}