SwiftUI报错:Cannot find '$PlayerList' in scope 问题求助
问题解决:Cannot find '$PlayerList' in scope
错误原因
你在TextField的绑定代码里直接用了类名PlayerList,但SwiftUI的双向绑定需要作用于ObservableObject的实例,而不是类本身。你已经在View里声明了@StateObject var viewModel: PlayerList = PlayerList(),所以应该用这个viewModel实例来访问属性。
修正后的代码
import SwiftUI class PlayerList: ObservableObject { // 遵循Swift命名规范,属性名小写开头 @Published var players = [ Player(name: ""), Player(name: ""), ] } struct Player: Identifiable { var name: String var id = UUID() } struct ViewJouer: View { @StateObject var viewModel: PlayerList = PlayerList() var body: some View { VStack { // 改为访问viewModel实例的players数组 TextField("Player 1", text: $viewModel.players[0].name) } } } struct ViewJouer_Previews: PreviewProvider { static var previews: some View { ViewJouer() } }
关键修改点
- 把绑定路径从
$PlayerList.Players[0].name改成$viewModel.players[0].name,使用你创建的viewModel实例 - 调整了属性名
Players为players,符合Swift的命名规范(类/结构体名大驼峰,属性/变量名小驼峰)
内容的提问来源于stack exchange,提问作者josé
相关产品推荐
相关产品推荐

