我是SwiftUI的新手,我想用“快速开发人员访问”按钮(又名“ User1”)创建一个登录屏幕,该屏幕应填写用户和密码字段。
当我单击“ User1”按钮时,@State
的{{1}}电话和密码变量正确填充了正确的值,但是LoginScreen
没有显示更新的值。值。
我还尝试使用CustomLoginField
代替@Binding var phone:String
,但结果相同。
我知道@State
应该是私有的。所以我也想知道编写我的代码的正确方法。
@State
答案 0 :(得分:1)
您刚刚犯了一个小错误。
在customloginField中,您需要定义inputStr:String作为绑定变量
@Binding var inputStr:String
在使用时,您必须按以下方式使用
CustomLoginField(inputStr:self.$phone, keyboard: .numberPad, placeholder:"PHONE", formatedPhoneNumber:true, maxLength: 10)
CustomLoginField(inputStr:self.$password, keyboard: .numberPad, placeholder: "PASSWORD", isSecure: true, maxLength: 4)
在电话和密码前加上“ $”?
在SO线程下面检查@state与@binding SwiftUI @State vs Binding