2 votes

@Binding init avec la classe

J'aimerais initier un @Binding dans une structure avec un @State d'une classe.

Voir le commentaire dans le code, "// problème ici". J'ai essayé :

$junk = model.$junk
junk = model.$junk
junk = model.junk   

Cela compile ...

import SwiftUI

struct Junk_Test: View {
    @Binding var junk: String

    var body: some View {
        Text("\(junk)")
    }
}

class JunkModel {
    @State var junk = "xyz"
}

struct Junk_Test_Previews: PreviewProvider {
    static var previews: some View {
        Junk_Test(junk: JunkModel().$junk)
    }
}

Cela ne compile pas ...

import SwiftUI

struct Junk_Test: View {
    @Binding var junk: String

    init(model: JunkModel) {
        $junk = model.$junk  // problem here
    }

    var body: some View {
        Text("\(junk)")
    }
}

class JunkModel {
    @State var junk = "xyz"
}

struct Junk_Test_Previews: PreviewProvider {
    static var previews: some View {
        Junk_Test(model: JunkModel())
    }
}

Je pensais que les deux compileraient. Y a-t-il un moyen de le faire ?

0voto

Fabian Points 1191

$junk accède au propriété de projection tandis que _junk es el propriété de stockage synthétisée que vous voulez initialiser.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X