【发布时间】:2020-04-10 09:43:22
【问题描述】:
我有以下观点(去掉了不相关的部分):
struct Chart : View {
var xValues: [String]
var yValues: [Double]
@State private var showXValues: Bool = false
var body = some View {
...
if showXValues {
...
} else {
...
}
...
}
}
然后我想添加一种从外部修改这个值的方法,所以我添加了一个函数:
func showXValues(show: Bool) -> Chart {
self.showXValues = show
return self
}
所以我像这样从外部构建图表视图:
Chart(xValues: ["a", "b", "c"], yValues: [1, 2, 3])
.showXValues(true)
但它的工作原理就好像该值仍然为假一样。我究竟做错了什么?我认为更新 @State 变量应该更新视图。总的来说,我对 Swift 很陌生,对 SwiftUI 更是如此,我是否错过了某种应该在这里使用的特殊技术?
【问题讨论】:
-
从另一个视图更改值的一种方法是使用@Binding