![](/img/trans.png)
[英]Invalid update: invalid number of rows in section 0 when trying to expand and collapse UITableView sections
[英]SwiftUI app crashes when trying to expand/collapse sections on a sheet
這個想法是,當用戶點擊標題時,他們會展開並顯示控件。
當我展開其中一個部分時,它會崩潰,然后單擊 TextField,然后單擊不同的部分以使當前部分折疊,而另一個部分展開。
注意事項:
我的代碼有什么問題? 或者它是 SwiftUI 中的錯誤?
我將有問題的代碼提煉成最小的工作示例
struct DetailView: View {
@State var name: String = "Default name"
@State var location: String = "Default location"
@State var expanded : Int = -1
var body: some View {
VStack {
Button (action: {self.expanded = 0}) {
HStack {
Text(self.name).font(.caption)
Spacer()
Image (systemName: "chevron.right")
}
}
if self.expanded == 0 {
TextField ("Enter name", text: self.$name)
}
Button (action: {self.expanded = 1}) {
HStack {
Text(self.location).font(.caption)
Spacer()
Image (systemName: "chevron.right")
}
}
if self.expanded == 1 {
TextField ("Enter location", text: self.$location)
}
Spacer()
}.padding()
}
}
struct ContentView: View {
@State var showDetail = false
var body: some View {
NavigationView {
Button ("Detail") {
self.showDetail = true
}.sheet(isPresented: self.$showDetail, content: {DetailView()})
}
}
}
如果有人從谷歌登陸這里,它最終會成為與這里相同的問題SwiftUI iOS 當 state 更改導致鍵盤在工作表中退出作為第一響應者時應用程序崩潰
然而,在我的例子中,堆棧毫無用處是空的,只有在無數次嘗試之后,我才得到一個除了通用的“主”事件循環之外還有ViewRendererHost.render
的堆棧。 果然谷歌搜索它立即產生了上面的鏈接
向 Apple 報告了此事。 這顯然是 SwiftUI 中的錯誤
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.