Reputation: 14684
Following error in my preview:
struct DetailView: View {
var header: DataProvider.DataHeader
var body: some View {
Text("...")
}
}
struct DetailView_Previews: PreviewProvider {
var a = DataProvider.DataHeader(title: "a", text: "b")
static var previews: some View {
DetailView(header: a)
}
}
Error is:
Instance member 'a' cannot be used on type 'DetailView_Previews'
Why this is happening?
Upvotes: 43
Views: 17852
Reputation: 119292
You can use the new #Preview
macro instead:
#Preview {
let a = DataProvider.DataHeader(title: "a", text: "b")
DetailView(header: a)
}
Upvotes: 0
Reputation: 1
I would suggest doing something like this.
struct DetailView_Previews: PreviewProvider {
static func getHeader()->DataProvider.DataHeader{
var header:DataProvider.DataHeader = DataProvider.DataHeader(title: "a", text: "b")
return header
}
static var previews: some View {
DetailView(header: getHeader())
}
}
Upvotes: -2
Reputation: 257693
It is due to static var preview
,
so use either static as well
static var a = DataProvider.DataHeader(title: "a", text: "b")
or construct in place
DetailView(header: DataProvider.DataHeader(title: "a", text: "b"))
Upvotes: 88
Reputation: 4178
SwiftUI Preview -> You have to use static var here:
struct ErrorView_Previews: PreviewProvider {
@State static var alert = false
@State static var error = "Please fill all the contents properly"
static var previews: some View {
ErrorView(alert: $alert, error: $error)
}
}
Upvotes: 18