SwiftUI 中带循环的动态按钮

Dynamic Button with loop in SwiftUI

我正在使用 SwiftUIXcode-beta 4

我想用 ForEach 创建动态按钮。我正在使用这些代码行:

struct Result {
    var id = UUID()
    var score: Int
}

struct ContentView : View {
    let results = [Result(score: 8), Result(score: 5), Result(score: 10)]

    var body: some View {
        VStack {
            ForEach(results.identified(by: \.id)) { result in
                Button(action: {
                    print(result.score)
                }){
                    Text(result.score)
                }
            }
        }
    }
}

但是Xcode无法编译这个。

当我在按钮样式中将Text(result.score)更改为Text("test")时,现在Xcode可以编译它

尝试使用文本("\(result.score)")

要打印 IntText("\(result.score)")

另请注意,ForEach 语法略有变化(Beta 5)。
现在应该是:results.identified(by: \.id)

let results = [Result(score: 8), Result(score: 5), Result(score: 10)]

var body: some View {
    VStack {
        ForEach(results.identified(by: \.id)) { result in
            Button(action: {
                print(result.score)
            }){
                Text("\(result.score)")
            }
        }
    }
}

由于result.score是Int,必须将其转换为String才能在Text()中显示。将您的文本按钮代码更改为此:

Text("\(result.score)")