SwiftUI에서 List 내에서 ForEach를 사용할 때의주의
(이런 오류에 걸리지 않는 문제가 가장 곤란하다.)
import SwiftUI
struct ContentView: View {
@ObservedObject var networkManager = NetworkManager()
var body: some View {
NavigationView {
VStack {
List(networkManager.posts) { post in
NavigationLink(destination: DetailView(url: post.url)) {
VStack {
Text(post.title)
.font(.callout)
.fontWeight(.medium)
.frame(maxWidth: .infinity, alignment: .leading)
HStack {
Image(systemName:"tag")
.resizable()
.frame(width: 13.0, height: 13.0, alignment: .leading)
// 以下タグ表示の処理
ForEach(0..<post.tags.count) { i in
if let tag = post.tags[i].name {
Text(tag)
.font(.caption)
}
}
//以下省略
타이틀이나 일시에 어긋남은 보이지 않기 때문에, 태그를 표시할 때에 이용하고 있는 ForEach에 문제가 있을 것이라고 생각해, 무서운 무서운 StackOverFlow에 처음으로 질문을 던져 보았다. .
그러자 물건의 1시간에 해결했다.
역시, List의 id와의 연결이 잘 안되지 않았던 것 같기 때문에, ForEach의 쓰는 방법을 이하와 같이 변경하는 것으로 해소할 수 있었다.
ForEach(post.tags.indices, id: \.self) { i in
List 속에서 ForEach를 사용할 때는 index를 사용하려고 강력하게 맹세했다.
Reference
이 문제에 관하여(SwiftUI에서 List 내에서 ForEach를 사용할 때의주의), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kumawami1225/items/7a40a5e3a27555aa3c02텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)