Carmen_1994
Carmen_1994

Reputation: 13

TextField in SwiftUI resets after every keystroke

in this script the TextField is shown, but it resets to "player 1" after every keystroke. Can anyone help me?

import SwiftUI

class Player: ObservableObject {
    @Published var playerData = "player 1"
}

let player = Player()

struct ContentView: View {
    @ObservedObject var player: Player
    
    var body: some View {
        TextField("player", text: $player.playerData)
    }  
}

Tried with other code, but without success.

Upvotes: 0

Views: 314

Answers (1)

malhal
malhal

Reputation: 30746

class Player: ObservableObject {
    @Published var playerData = "player 1"
    
    static let shared = Player()
}

struct ContentView: View {
    @ObservedObject var player = Player.shared
    
    var body: some View {
        TextField("player", text: $player.playerData)
    }
}

However, usually the model store would be an environmentObject PlayerStore and would contain an array of Player model structs.

Upvotes: 0

Related Questions