arrays - 在 SwiftUI 预览中初始化对象
问题描述
编辑:我已经完全删除了预览,只是从主视图中将对象作为参数传递给视图。我得到这个:
Cannot convert value of type 'GoOsc.GpInstanceModel.Type' to expected argument type 'GoOsc.GpInstanceModel'
我的理解是,预览需要@EnvironmentObject
它使用的任何参数的默认值......
struct GigView_Previews: PreviewProvider {
static var previews: some View {
GigView().environmentObject(GoOsc())
.preferredColorScheme(.dark)
}
}
这段代码抛出......
// Missing arguments for parameters 'gpInstanceMain', 'gpInstanceBackup' in call
它要求我的自定义对象类型的两个变量,在主体中像这样设置......
var gpInstanceMain: GoOsc.GpInstanceModel
var gpInstanceBackup: GoOsc.GpInstanceModel
为某些字符串设置默认值很容易,但我不知道在这种情况下该怎么做。它超出了范围,因为它是预览,所以我无法访问填充的对象以用作预览。
所以我的问题是如何“手动”初始化我的对象?
这是它派生自的结构...
struct GpInstanceModel {
var gpSongName: String
var gpSongNumber: String
var gpSongPartName: Array<String>
var gpSongPartNumber: Array<String>
var gpCurrentSongPartName: String
var gpCurrentSongPartNumber: String
init() {
gpSongName = ""
gpSongNumber = ""
gpSongPartName = Array(repeating: "", count: 8)
gpSongPartNumber = Array(repeating: "", count: 8)
gpCurrentSongPartName = ""
gpCurrentSongPartNumber = ""
}
}
Xcode 建议这个(在 <> 中)
struct GigView_Previews: PreviewProvider {
static var previews: some View {
GigView(gpInstanceMain: <#GoOsc.GpInstanceModel#>, gpInstanceBackup: <#GoOsc.GpInstanceModel#>).environmentObject(GoOsc())
.preferredColorScheme(.dark)
}
}
解决方案
这个怎么样:
struct GigView_Previews: PreviewProvider {
static var previews: some View {
GigView(gpInstanceMain: GpInstanceModel(), gpInstanceBackup: GpInstanceModel())
.environmentObject(GoOsc())
.preferredColorScheme(.dark)
}
}
推荐阅读
- python-3.x - Odoo12 - 将上下文从模型传递到过滤器搜索视图
- c++ - 将向量的元素插入集合,同时打印集合元素得到编译问题c ++ 98
- javascript - 如何用更改 addEventListener 替换内容而不是添加
- node.js - 根据 id 和一个特定属性过滤 mongoose 中的文档
- python - 是否可以在 html 的标签中插入变量?例如:
- flutter - 无法预编译 build_runner:build_runner:
- java - 如何验证来自同一父级的另一个 Maven 模块的 JSON
- power-automate - 获取项目或文件的更改(仅限属性)
- reactjs - 如何使用 react 和 typescript 使用样式化组件?
- r - R中的plot() - 如何在两条垂直线之间遮蔽区域?