SwiftUI 自动导航 closing/pop - Realm
SwiftUI Navigation automatically closing/pop - Realm
我正在使用领域结果集填充列表。
从此列表导航时,它会打开一个新视图,然后自动关闭该视图。
使用结构没有问题。
为什么第二个视图会自动关闭?
我有屏幕录像,但不能post这里。
import SwiftUI
import Combine
struct TestStruct:Identifiable{
let id = UUID()
let firstname: String
}
extension TestStruct {
static func all() -> [TestStruct]{
return[
TestStruct(firstname: "Joe"),
TestStruct(firstname: "Jane"),
TestStruct(firstname: "Johns")
]
}
}
struct TestListView: View {
let realmList = Horoscope.getHoroscopes() //Fetches from Realm
let structList = TestStruct.all()
var body: some View {
NavigationView{
// This owrks
// List(structList) { item in
// MyItemRow(itemTxt: item.firstname)
// }
//This automatically closes the view
List(realmList) { item in
MyItemRow(itemTxt: item.firstname)
}
.navigationBarTitle("Charts", displayMode: .automatic)
.navigationBarItems(trailing: EditButton())
}
}
}
struct MyItemRow: View {
var itemTxt:String
var body: some View {
NavigationLink(destination: Text("Test")) {
Text(itemTxt)
}
}
}
struct TestListView_Previews: PreviewProvider {
static var previews: some View {
TestListView()
}
}
我觉得可以找到答案
简而言之,不要生成 ForEach
迭代的集合的 id
。它会检测到变化并返回。
Realm object has an auto generated id
property with each reference, try replacing it with a consistent id
我正在使用领域结果集填充列表。
从此列表导航时,它会打开一个新视图,然后自动关闭该视图。
使用结构没有问题。
为什么第二个视图会自动关闭?
我有屏幕录像,但不能post这里。
import SwiftUI
import Combine
struct TestStruct:Identifiable{
let id = UUID()
let firstname: String
}
extension TestStruct {
static func all() -> [TestStruct]{
return[
TestStruct(firstname: "Joe"),
TestStruct(firstname: "Jane"),
TestStruct(firstname: "Johns")
]
}
}
struct TestListView: View {
let realmList = Horoscope.getHoroscopes() //Fetches from Realm
let structList = TestStruct.all()
var body: some View {
NavigationView{
// This owrks
// List(structList) { item in
// MyItemRow(itemTxt: item.firstname)
// }
//This automatically closes the view
List(realmList) { item in
MyItemRow(itemTxt: item.firstname)
}
.navigationBarTitle("Charts", displayMode: .automatic)
.navigationBarItems(trailing: EditButton())
}
}
}
struct MyItemRow: View {
var itemTxt:String
var body: some View {
NavigationLink(destination: Text("Test")) {
Text(itemTxt)
}
}
}
struct TestListView_Previews: PreviewProvider {
static var previews: some View {
TestListView()
}
}
我觉得可以找到答案
简而言之,不要生成 ForEach
迭代的集合的 id
。它会检测到变化并返回。
Realm object has an auto generated
id
property with each reference, try replacing it with a consistentid