Как назначить переменную, например, ForEach в SwiftUI? - PullRequest
1 голос
/ 11 марта 2020

возможно ли установить переменную в SwiftUI, например, в ForEach, например:

struct ContentView: View {
    var test: Int

    var body: some View {

        List {
            ForEach(1...5, id: \.self) {
                Text("\($0)…")

                test = $0 // how to realise this?
            }
        }

    }
}

Я не могу перенести это в жизнь, я получаю ошибку вроде:

Unable to infer complex closure return type; add explicit type to disambiguate

1 Ответ

1 голос
/ 11 марта 2020

Вы не можете присвоить test что-либо из любого места внутри вашего ContentView, потому что оно является структурным и, следовательно, self является неизменным, но вы сможете сделать что-то подобное в следующее:

struct ContentView: View {
//    var test: Int // cannot be assigned, because self is immutable

    var body: some View {
        List {
            ForEach(1...5, id: \.self) { (i) -> Text in
                let test = i // calculate something intermediate
                return Text("\(test)…")
            }
        }
    }
}
...