우선 제가 만들어본 코드입니다.
switch gridType {
case .single : GridType_Single(items: items)
default :
ForEach(items){ item in Image(item.imageName) .resizable() .aspectRatio(contentMode: .fit) .animation(.default)
}
}
강의에서는 ForEach문이 먼저 나오고 클로져에선 item : Item 을 다루었습니다. GridType_Single에게도 배열이 아닌 item 구조체 한개를 인수로 사용하였습니다.
저는 items: [Item], 즉 배열을 인수로 사용하는 ForEach문을 사용하였습니다. 그렇게 만들기 위해 switch문이 제일 먼저 나오게 되었습니다.
선생님의 코드에서는 오류없이 동작하였습니다. 하지만 제 코드에서는 picker 를 변경할때마다 view 갱신이 제때 되지 못해 gridType이 .single일때만 랜더링돼야하는 Text()들이 다른 모드에까지 따라왔습니다. (UIKit이었다면 reloadData() 사용해야하는 상황)
왜 이런 문제가 발생하는건지 알 수 있을까요?