ios - SwiftUI Picker 填充问题 - 选择器中的 ForEach 循环不填充
问题描述
我有 SwiftUI 和 XCode 11.2.1 环境。
在以下代码中,ForEach 循环显示标题,列表也显示,它的工作原理:
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 循环根本不显示 Text,我使用了 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) ;}
}
}}}}
推荐阅读
- c# - 如何在 WCF 客户端服务中实现 WS 安全性(时间戳、用户名令牌、签名)
- javascript - 使其在用户尝试调整图像大小时不会移动
- python - 使用python将dict写入neo4j数据库的更快方法
- ios - React 本机 API 调用在新 iPhone 上返回错误代码 0
- spring - 是否可以使用 gatling 通过 websocket 测试 rsocket 协议?
- python-3.x - Python列表“未定义”,但我能够打印结果
- php - 传递给 Illuminate\Auth\EloquentUserProvider::validateCredentials() 的参数 1 必须是 Illuminate\Contracts\Auth\Authenticatable 的实例
- string - SwiftUI 选择器值
- json - 使用 Powershell 处理包含多个对象的 JSON 文件
- netlogo - 如何通过在 netlogo 中使用 foreach 循环来识别动态代理集中乌龟的品种?