我有一个 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
故事板,也没有使用任何故事板。
我会尽早触发任何副作用。这就是按钮动作。如果您从副作用中触发副作用,那么将很难跟踪点击按钮时可能发生的所有变化。我曾经实现过这样的多重绑定链。维护起来太可怕了。
\n如果您仍然想观察 Text-View,那么您可以只观察状态本身,而不是 Text-View。副作用可以由 View\xe2\x80\x98s onChange 修饰符触发。https://developer.apple.com/documentation/swiftui/view/onchange(of:perform:)
\nText(textToShow)\n .onChange(of: textToShow) { newValue in\n print(...)\n }\n
Run Code Online (Sandbox Code Playgroud)\n