Cha*_*hal 3 foreach xcode swift swiftui
我使用 ForEach 循环遍历保存的用户输入数组并显示这些输入,这会正确显示所有内容,除非我向该数组添加新输入,否则不会显示新项目,除非我导航到另一个视图然后来后退。
我已经尝试了一切,从用 .self 更改 .id ,但没有任何效果。
大家有什么想法吗?谢谢你!
编辑:看起来是我的工作表阻止了我的视图更新,我尝试简单地在我的视图中添加工作表代码,现在 ForEach 实时更新,关于工作表如何进入视图,我是否缺少一些东西方式?
struct AnswersView: View {
@EnvironmentObject var vm: BrainstormViewModel
@Environment(\.presentationMode) var presentationMode
@State var mBIndex: Int
@State var substitute: [String] = []
@State var showSheet: Bool = false
@State var updater: Bool = false
var body: some View {
ScrollView {
VStack(alignment: .leading) {
Text("How could I...")
Text(vm.brainstormArray[mBIndex].title)
.font(.system(size: 32, weight: .bold, design: .rounded))
.multilineTextAlignment(.leading)
Button {
showSheet.toggle()
} label: {
ButtonSubview(icon: "play.fill", text: "Continue brainstorm")
.environmentObject(BrainstormViewModel())
}
ForEach(vm.brainstormArray[mBIndex].answersArray, id: \.self) { index in
Text(index.name)
.font(.system(size: 20, weight: .bold, design: .rounded))
.padding(.top, 30)
HStack {
Text(index.answer[0])
.padding()
Spacer()
}
.background(Color.MyTheme.orangeLight)
.cornerRadius(16)
}
}
.fullScreenCover(isPresented: $showSheet) {
BrainstormView(mBIndex: mBIndex)
}
.navigationBarTitleDisplayMode(.inline)
}
.frame(maxWidth: .infinity)
.padding()
.background(Color.white)
}
Run Code Online (Sandbox Code Playgroud)
}
| 归档时间: |
|
| 查看次数: |
4962 次 |
| 最近记录: |