swift - 如何使用 ForEach 符合协议'Hashable'
问题描述
你好我有一个关于确认协议'Hashable'的问题。真的很烂。这是我的模型:
struct Page: Decodable, Identifiable {
var id: String
var name: String
var thumbnail: String?
var description: String
var type: String
var speechs: [String]
}
struct ExploreDataSource: Decodable, Hashable {
var title: String
var data: [Page]
}
这是我的ForEach
代码:
List {
ForEach(self.VM.dataSource, id: \.self) { item in
Text(item.title).bold().font(.system(size: 22.0))\
}
}
错误:
类型“ExploreDataSource”不符合协议“Equatable”。是否要添加协议存根?类型“ExploreDataSource”不符合协议“Hashable”
解决方案
您的Page
结构Hashable
分别不符合Equatable
,因此ExploreDataSource
不能符合Hashable
任何一个。
所以我的建议是让你也Page
符合Hashable
。
struct Page: Decodable, Identifiable, Hashable {
...
}
推荐阅读
- java - SQL Hibernate 不会重新调整与直接 SQL 查询相同的结果
- ruby-on-rails - 充当可标记使用范围(标记器?)和上下文
- powershell - 列出远程 PC 上共享的内容
- javascript - react-router v4嵌套路由问题
- c++ - 创建堆栈时出现问题!(街机游戏)在 C++ 中
- objective-c - 无法将类型 '(Array<_>).Type' 的值分配给 [CustomClass]
- reactjs - 如何在项目中获取缩小文件(Gatsby / React)
- amazon-web-services - DynamoDB 在另一个账户中触发 Lambda 函数
- react-native - 测试运行器(开玩笑)未能导入 expo 模块
- angular - 在 Ionic 3 中使用变量和 Http 标头字段名称