I present this view as a sheet from its parent view

struct NamesView: View { @Binding var match: Match var body: some View { ... } }

Since the match source of truth is in the parent view presenting this NamesView sheet, when the view is constructed I pass in a $match binding and data flows as intended.

However, when constructing this view in a preview provider

struct NamesView_Previews: PreviewProvider { static var previews: some View { NamesView() } }