首页 > 解决方案 > coredata int32 在文本中没有显示?

问题描述

我使用核心数据来存储一些东西,并将其声明为

@Environment(\.managedObjectContext) private var viewContext
    @StateObject var exeplan: Explan

Explan 是一个实体

ForEach(Array(exeplan.exercisearray.enumerated()), id: \.element) { (index,item) in
Button(action: {
           item.duration -= 15
       do {
         try viewContext.save()
      } catch {} }, label: {
        Image(systemName: "minus.circle.fill")})
    Text("\(item.duration)")
     Button(action: {item.duration += 15
           do {
          try viewContext.save()
           } catch {})

文本 Text("(item.duration)") 不会立即更新,它是 Int32 样式,

但是当我打印它时,num是一个新的。当我返回时

而我用另一个int32来代替它,它已经改变了。</p>

我的意思是它是一个闭包,我怎样才能传递一个新数组来替换它?另一种方式,它解决了这个问题?

标签: swiftui

解决方案


尝试通过添加“手动”状态更新 Explan

exeplan.objectWillChange.send()

就在之前

item.duration -= 15

推荐阅读