ForEach值只是数组中的第一个项



我一直在尝试使用SwiftUI为我的应用程序制作一些UI,我需要将字符串分隔成多个字符,并使每个字符都有自己的组件,到目前为止我有这样的:

HStack{
ForEach(Array("val")) { char in 
//Stuff here
}
}

我有一个Character的扩展,它给了它一个id,所以它在这种情况下可以工作,但问题是如果我传入";val";所有组件都具有文本"0";v〃;而不是";v〃"a"l〃;在单独的组件中,如果我传入一个字符数组,类似于["a","b"]的东西也会变成"a";a";以及";a";。如果这是一个糟糕的问题,我很抱歉,我只是对SwiftUI和Swift很陌生。

不要使Character的扩展符合Identifiable。相反,请执行以下操作:

ForEach(Array("val"), id: .self)

我不知道您对扩展的实现,所以仅将.selfCharacter一起使用就可以了。但是,您可以使Character符合Identifiable,例如:

extension Character: Identifiable {

public var id: Character { self }
}

相当于CCD_ 7。根据所经历的问题,我可以假设实现存在问题,例如给出相同的id,例如:

extension Character: Identifiable {

public var id: Int { 1 }
}

最新更新