【发布时间】:2020-06-20 10:01:15
【问题描述】:
如果我们将绑定变量(如 $saveDialog 为 true)传递给 alert 或 sheet,之后该变量将重置为 false。
.alert(isPresented: $saveDialog) {}
但是如果我们想做同样的事情怎么办:当我们点击按钮时清除屏幕,通过将 $clear 设置为 true:
Button("Clear") { self.clear = true }
然后
DrawView(clear:$clear)
在 DrawView 中
struct DrawView: UIViewRepresentable {
@Binding var clear:Bool
func updateUIView(_ canvas: PKCanvasView, context: Context) {
if clear {
canvas.drawing = PKDrawing()
self.clear = false // Issue
}
}
问题是:在视图更新期间修改状态,这将导致未定义的行为。在哪里将 clear 变量设置为 false?
【问题讨论】: