swiftui って
List(data) {
RowView(viewModel: .init($0))
}
ってやるとdataの数だけViewModelが作られちゃうけど
List(data) {
RowView($0)
}
ってやると表示されてる分だけViewModelが作られる。
その場合のRowViewは色々略だけど以下のよう。
struct RowView {
let text: String
@StateObject var viewModel = ViewModel()
var body: some View {
Text(viewModel.text)
.task(id: text) { viewModel.text = text}
}
}