如何处理 SwiftUI 中 Text 的 onChange 事件?

Rol*_*ndo 1 ios swift swiftui

我有一个 ContentView,其中有一个变量:

@State private var textToShow = "Some Text"
Run Code Online (Sandbox Code Playgroud)

我在以下内容中展示:

Text(textToShow)
Run Code Online (Sandbox Code Playgroud)

我有一个按钮,当我单击它时,它会更改textToShow为“更改的文本”。附加文本更改时触发的某种事件的正确方法是什么?我正在寻找类似 Text(textToShow).onChange(print("Text Changed")) 的内容。

请注意,我没有任何IBAction故事板,也没有使用任何故事板。

Nin*_*ino 8

我会尽早触发任何副作用。这就是按钮动作。如果您从副作用中触发副作用,那么将很难跟踪点击按钮时可能发生的所有变化。我曾经实现过这样的多重绑定链。维护起来太可怕了。

\n

如果您仍然想观察 Text-View,那么您可以只观察状态本身,而不是 Text-View。副作用可以由 View\xe2\x80\x98s onChange 修饰符触发。https://developer.apple.com/documentation/swiftui/view/onchange(of:perform:)

\n
Text(textToShow)\n  .onChange(of: textToShow) { newValue in\n    print(...)\n  }\n
Run Code Online (Sandbox Code Playgroud)\n