[英]SwiftUI Picker population problem - ForEach Loop in picker does not populate
我有 SwiftUI 和 XCode 11.2.1 環境。
struct Todo: Codable, Identifiable {
let userId, id: Int
let title: String
let completed: Bool
enum CodingKeys: CodingKey {
case userId, id, title, completed
}
}
// SOME STUFF HERE ...
struct ContentView: View {
// SOME STUFF HERE...
var body: some View {
NavigationView {
VStack (spacing: 15){
Text("Number of items: \(todoData.todos.count)"
ForEach(self.todoData.todos) { str in Text(String(str.title));} // works
List(self.todoData.todos) { todo in
Text(todo.title) // works
}
但是,以下 ForEach 循環根本不顯示文本,我在其中使用了 todoData.todos.count:
ForEach(0 ..< (todoData.todos.count)) {
Text(String(self.todoData.todos[$0].userId))
}
來到 Picker 人群,當我使用以下內容時:
Picker( selection: $selectedItem, label: Text("MyItems"), content:
{
ForEach(self.todoData.todos) { str in Text(str.title);}
}
)
=-- 除了“MyItems”選擇器名稱和選擇器列表的 2 個空行之外,沒有顯示任何內容。
任何建議/幫助將不勝感激。
=-- 該
data is as follows:
[
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
},
{
"userId": 1,
"id": 2,
"title": "quis ut nam facilis et officia qui",
"completed": false
},
{
"userId": 1,
"id": 3,
"title": "quis ut nam facilis et officia qui",
"completed": false
},
{
"userId": 2,
"id": 4,
"title": "quis ut nam facilis et officia qui",
"completed": false
}
]
你可以試試這個,它適用於我的 Xcode:
@State var selectedItem: String = ""
var body: some View {
NavigationView {
VStack (spacing: 15){
Text("Number of items: \(todos.count)")
ForEach(self.todos) { str in Text(String(str.title));} // works
List(self.todos) { todo in
Text(todo.title) // works
}
ForEach(0 ..< (todos.count)) {
Text(String(self.todos[$0].userId))
}
Picker(selection: self.$selectedItem, label: Text("MyItems")) {
ForEach(self.todos) { str in Text(str.title).tag(str.title) ;}
}
}}}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.