Если вы извлекаете список в его собственную переменную за пределами body
:
var list: some View {
List(FooBar.allCases, selection: $selectedFooBar) { item in
Text(self.string(from: item)).tag(item)
}
}
... Вы получаете следующую ошибку: «Невозможно вызвать инициализатор для типа 'List <_, _>' со списком аргументов типа '([ContentView.FooBar], selection: Binding , @escaping (ContentView.FooBar) -> some View) '"
Похоже, вы пытаетесь использовать тот же инициализатор из Picker on List, но они совсем другие. Может быть, это то, что вы' ищу:
List {
ForEach(FooBar.allCases) { item in
Text(self.string(from: item)).tag(item)
}
}