![](/img/trans.png)
[英]SwiftUI - View doesn't update despite using @Published and @ObservedObject
[英]StateObject property doesn't update view but ObservedObject does
我將數據保存到另一個視圖中的 Realm DB 中,我使用@EnvironmentObject var modelData: DBViewModel
並將它們加載到此視圖中
struct SelectedSinsList: View {
@StateObject var modelData = DBViewModel() //@ObservedObject works, as it always recreates the List when I open this view and values are updated
var body: some View {
NavigationView {
ScrollView{
VStack(spacing: 15){
ForEach(modelData.sins){sin in //..........
該行為表明您的視圖使用新數據進行更新的唯一原因是父視圖正在重繪,從而觸發了“無主”觀察到的 object 被重建。
State 和 StateObject 比 View 結構體的失效和重繪更持久。 要使用這些,您需要通過調用 self.objectWillChange.send() 將 StateObject 中的回調或發布者連接到其 objectWillChange 發布者
但是如果那個 DBViewModel 已經是一個 environmentObject,為什么要重新創建它呢?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.