我在将参数传递给自定义视图时遇到问题,这可能是这里的确切问题
struct DescriptionInputView: View {
@ObservedObject var viewModel: ContentViewModel
@State private var description: String = ""
var title: String
var audioRequired: Bool
var videoRequired: Bool
var imageRequired: Bool
var documentRequired: Bool
var body: some View {
VStack(alignment: .leading) {
// Label
Text(title)
.font(.headline)
.padding(.bottom, 5)
Spacer()
if audioRequired || videoRequired || imageRequired || documentRequired {
AttachmentView(viewModel: viewModel )
}
// TextField with underline
VStack {
TextField(title, text: $description)
.keyboardType(.default) // Default keyboard for text input
.padding(.vertical, 10) // Padding for the text
.overlay(Rectangle().frame(height: 1).padding(.top, 35)) // Line below the TextField
.foregroundColor(.gray) // Text color
}
// Character limit hint
Text("Minimum 1 - Maximum 100 characters allowed")
.font(.caption)
.foregroundColor(.gray)
Spacer()
}
.padding()
}
}
var items: [CRItemModel]
@ObservedObject var viewModel: ContentViewModel
...
ForEach(items, id: \.id) { item in
switch item.getType().rawValue {
case "TEXT":
DescriptionInputView(
viewModel: viewModel, title: item.title,
audioRequired: item.audioRequired,
videoRequired: item.videoRequired,
imageRequired: item.imageRequired,
documentRequired: item.documentRequired
)
.....
我在 AccessibilityRotorContent 的 ForEach DescriptionInputView 中遇到错误,可能是什么问题?谢谢!
尝试将 viewModel 传递为
EnvironmentObject
struct DescriptionInputView: View {
@EnvironmentObject var viewModel: ContentViewModel
struct ContentView: View {
@StateObject var viewModel = ContentViewModel()
var body: some View {
ForEach(items, id: \.id) { item in
if let title = item.title {
DescriptionInputView(
title: title,
audioRequired: item.audioRequired ?? false,
videoRequired: item.videoRequired ?? false,
imageRequired: item.imageRequired ?? false,
documentRequired: item.documentRequired ?? false
)
.environmentObject(viewModel) // Inject the viewModel here
}
}
}
}