XCode 12.5 日本語化計画:Swift 記事: Inspecting View Layout
特定の値が変更したときにアクションを起動するこのビューの修飾子を追加します。
func onChange<V>(of value: V, perform action: @escaping (V) -> Void) -> some View where V : Equatable
特定の値が変更したときにアクションを起動するビュー。
value
クロージャを実行するかどうかを決定するときにチェックする値。
action
値が変更したときに実行すべきクロージャ。
newValue
比較チェックに失敗した新しい値。
onChange を使用して、Environment キーや Binding などの値の変更の結果として副作用をトリガーできます。
onChange はメインスレッド上で呼び出されます。メインスレッド上で長時間実行されるタスクを実行することは避けてください。value の変更に応じて長時間実行されるタスクを実行する必要がある場合は、バックグラウンドキューにディスパッチする必要があります。
新しい値がクロージャに渡されます。以前の値は、新しい値と比較するためにクロージャによってキャプチャされる場合があります。たとえば、以下のコード例では、PlayerView は古い値と新しい値の両方をモデルに渡します。
struct PlayerView: View {
}
func onAppear(perform: (() -> Void)?) -> some View
このビューが現れるときに実行すべきアクションを追加します。
func onDisappear(perform: (() -> Void)?) -> some View
このビューが消えるときに実行すべきアクションを追加します。
func task(priority: TaskPriority, () async -> Void) -> some View
このビューが現れたときに実行すべき非同期タスクを追加します。
func task<T>(id: T, priority: TaskPriority, () async -> Void) -> some View
このビューが現れたとき、または指定された値が変更したときに実行するタスクを追加します。