当前位置: 代码迷 >> 综合 >> onChange(of:perform:) (SwiftUI 中文文档手册)
  详细解决方案

onChange(of:perform:) (SwiftUI 中文文档手册)

热度:40   发布时间:2024-02-24 21:07:31.0

onChange(of:perform:)

为此视图添加一个修改器,当特定值更改时,该修改器将触发操作。

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

返回值
当指定值更改时触发操作的视图。

参量

  • value
    确定是否运行闭包时要检查的值。

  • action
    值更改时要运行的闭包。

  • newValue
    未通过比较检查的新值。

讨论区

您可以使用触发更改值(例如键或)的副作用。onChangeEnvironmentBinding

onChange在主线程上被调用。避免在主线程上执行长时间运行的任务。如果您需要执行长时间运行的任务以响应value更改,则应分派到后台队列。

新值将传递到闭包中。闭包可以捕获先前的值,以将其与新值进行比较。例如,在下面的代码示例中,将旧值和新值都传递给模型。PlayerView

struct PlayerView : View {var episode: Episode@State private var playState: PlayState = .pausedvar body: some View {VStack {Text(episode.title)Text(episode.showTitle)PlayButton(playState: $playState)}.onChange(of: playState) { [playState] newState inmodel.playStateDidChange(from: playState, to: newState)}}
}

加入我们一起学习SwiftUI

QQ:3365059189
SwiftUI技术交流QQ群:518696470

  相关解决方案