swift - SwiftUI 的 PreviewProvider 函数导致问题
问题描述
使用 SwiftUI,我已经体验过PreviewProvider
几次发布,但还没有想出如何正确处理这个功能。
在这种情况下,我该如何防止出现问题,因为现在,它显然说:
使用未解析的标识符“ShelterDetailedView(shelter:)”
shelter
inside ofShelterDetailedView
正在由视图的父级转发。我从数据库中获取这些数据。
struct ShelterDetailedView: View {
var shelter: Shelter
var body: some View {
VStack(alignment: .leading, spacing: 0) {
ScrollView(.horizontal, showsIndicators: true) {
HStack {
Image(shelter.image)
.resizable()
.frame(width: UIScreen.main.bounds.width, height: 300)
Image("pacific")
.resizable()
.frame(width: UIScreen.main.bounds.width, height: 300)
}
}
HStack {
Spacer()
DetailedViewDistance(shelter: shelter)
Spacer()
}
.offset(x: 0, y: -30)
DetailedViewHeader(shelter: shelter)
Spacer()
}
}
}
struct ShelterDetailedView_Previews: PreviewProvider {
static var previews: some View {
ShelterDetailedView(shelter: ??????)
}
}
class Shelter: Identifiable {
let id: String
let title: String
let image: String
let available: Bool
let distance: Double
let gender: String?
init?(id: String, title: String, image: String, available: Bool, distance: Double, gender: String?) {
if id.isEmpty || title.isEmpty || image.isEmpty || distance < 0 {
return nil
}
self.id = id
self.title = title
self.image = image
self.available = available
self.distance = distance
self.gender = gender
}
}
解决方案
显式创建一些存根实例:
struct ShelterDetailedView_Previews: PreviewProvider {
static var previews: some View {
ShelterDetailedView(shelter: Shelter(... parameters here ...))
}
}
推荐阅读
- cordova - 在 ionic 3 中集成 Facebook 登录
- python - keras中的概率回归
- angular - 带有 --watch=false 的 Angular CLI 6 覆盖返回错误
- java - 方法编译并使用传递的错误类型的变量
- android - 无法使用 Dagger 2 注入 Fragment
- oracle - 异常是在错误的地方吗?放在哪里最好?
- java - 我想知道一种用于滚动和单击菜单每个元素的通用方法
- c# - 如何将多个存储库与工作单元一起使用?
- python - Django DateField 上的默认值格式
- python - PyCharm:无法查看熊猫数据框的子类