我有一个具有三个属性 的类topic
,navBarHidden
并且viewModel
我需要使用该类的属性之一来初始化视图模型topic
。但我不需要初始化其他属性,```topic. 我必须初始化视图模型,因为它会进行必要的 API 调用。
这是代码片段。
struct TopicCell: View {
@Binding var navBarHidden : Bool?
@State var topic: Topic?
@ObservedObject var viewModel : TopicCellViewModel
init() {
self.viewModel = TopicCellViewModel(topic: self.topic!)
}
}
起初并不是可选的topic
,navBarHidden
但后来我不得不初始化它们,我不想这样做。所有将初始化它们的数据都需要传入。所以我将它们设为可选项,这样我就不必初始化它们,然后我只需强制解开可选项。
但这给了我一个问题。
NavigationLink(
destination: DebateChatView(navBarHidden: $navBarHidden, topic: $topic, subtopic:
.constant(SubTopic(dictionary: ["id": "", "topic": "Random Subtopic", "title": topic!.title,
"bool": false , "messages": MOCK_MESSAGEZ])))
请注意两个绑定变量 oftopic
和navBarHidden
。这些现在不起作用,因为 DebateChatView 期望绑定普通数据,而不是绑定选项。但$topic!
不起作用。那么,有人可以告诉我解决此问题的最佳方法吗?