SwiftUIでチェック付きのListViewを作る

SwiftUIでチェック付きのListViewを作るのが大変でした。SwiftUI beta4 までOKだったのが Beta5でNGになったので、 検索で見つけたサンプルコードがビルドエラーに! 色々やって以下のコードに落ち着きました。 もっといい方法がありそうなんっだけど。なお、チェック部分は手抜きで文字列です。

import SwiftUI
 
var demoData = [Person(name: "Yamada Taro"), Person(name: "Aoki Ichido"), Person(name: "Sato Koji"), Person(name: "Kojima Masao")]
 
struct PersonView: View {
    @State var selectKeeper = Set<UUID>()
    
    var body: some View {
        VStack {
            NavigationView {
                List {
                    ForEach(demoData) { person in
                        SelectableRow(person: person, selectedItems: self.$selectKeeper)
                    }
                    .navigationBarTitle(Text("Selection Demo \(selectKeeper.count)"))
                }
            }
        } // VStack
    }
}
 
struct Person: Identifiable, Hashable {
    let id = UUID()
    let name: String
}
 
struct SelectableRow: View {
    var person: Person
 
    @Binding var selectedItems: Set<UUID>
    var isSelected: Bool {
        selectedItems.contains(person.id)
    }
    var isSelectedStr: String {
        get {
            if selectedItems.contains(person.id) {
                return "Yes"
            } else {
                return "No"
            }
        }
    }
 
    var body: some View {
        HStack {
            Button(action: {
                if(self.isSelected){
                    self.selectedItems.remove(self.person.id)
                }
                else{
                    self.selectedItems.insert(self.person.id)
                }
            }) {
                Text("\(isSelectedStr)")
            }
            Text(self.person.name)
        }
 
    }
}