这是我的数组:
services:
logger:
build:
context: .
image: logger:$VERSION
container_name: logger
environment:
- TARGET=$TARGET
volumes:
- ./data:/data
restart: unless-stopped
networks:
- mongodb_wnet
networks:
mongodb_wnet:
external: true
这是我的观点:
class Storages: ObservableObject {
let storage = Storage.storage()
let uid = UserAuth().uid ?? "<uid>"
@Published var photos: [String:String?] = [
"img1": UserDefaults.standard.string(forKey: "img1"),
"img2": UserDefaults.standard.string(forKey: "img2"),
"img3": UserDefaults.standard.string(forKey: "img3"),
]
如果我将struct EditProfile: View {
@ObservedObject var storage = Storages()
var body: some View {
VStack {
Text("Points")
.font(Font.system(size: 21))
.fontWeight(.bold)
HStack {
ForEach(storage.photos.sorted(by: <), id: \.key){ (key,val) in
EditableCircleImage(key: key, imgName: val)
}
}
字典从photos
更改为[String:String?]
(通过放入[String:String]
来防止?? ""
的值-它将起作用。但是我想保留nil
值,因为我需要知道数组项的值何时为零。
这是我为每个人传递的nil
:
struct
知道为什么我不能使用struct EditableCircleImage: View {
@ObservedObject var storage = Storages()
let key: String
let imgName: String?
吗?
答案 0 :(得分:1)
尝试此变体。在Xcode 12b上用一些复制的代码进行了测试。
ForEach(storage.photos.sorted(by: { $0.key < $1.key }), id: \.key){ (key,val) in
EditableCircleImage(key: key, imgName: val)
}