如何在 swiftUI 中更改 @State public var 值?
How to change a @State public var value in swiftUI?
在 SwiftUI 中,我有
@State public var utilisateur = ""
@State var connected = false
在这里,我有一个 TextField 来设置 utilisateur
的值。
TextField("nom.prenom", text: $utilisateur)
然后,如果 utilisateur
不是 ""
,我这样做了:
if self.connected{
Text("Connecté en tant que \(utilisateur)")
.padding()
.background(Color(red:0.3,green:0.8,blue:0.3))
.foregroundColor(.white)
}
if (!(self.utilisateur=="")){
Button(action: {self.connected.toggle()}) {
self.connected ? Text("Se déconnecter") : Text("Se connecter")
// .fontWeight(.bold)
}
.padding()
.background(self.connected ? Color(.red) : Color(red:0.0,green:0.4,blue:0.7))
.foregroundColor(.white)
}
我想要的是当用户点击 Se déconnecter
.
时删除 utilisateur
值
我尝试了很多可能性,但没有一个可行...
if !(self.connected){
$utilisateur=""
}
if !(self.connected){
utilisateur=""
}
if !(self.connected){
self.utilisateur=""
}
if !(self.connected){
self.$utilisateur=""
}
有人知道怎么做吗?
您应该使用的正确方法是 self.utilisateur = ""
将此行添加到 Button
的操作块中。这是执行此操作所需的工作代码:
struct CV: View {
@State private var utilisateur = ""
@State private var connected = false
@State private var buttonTitle = "connect"
var body: some View {
VStack {
TextField("Connect to??", text: $utilisateur)
if connected {
Text("Connected to \(utilisateur)")
.padding()
.background(Color(red:0.3,green:0.8,blue:0.3))
.foregroundColor(.white)
}
if !utilisateur.isEmpty {
Button(action: {
if self.buttonTitle == "connect" {
self.buttonTitle = "disconnect"
} else {
self.utilisateur = ""
}
self.connected.toggle()
}) {
Text(buttonTitle)
.fontWeight(.bold)
}
.padding()
.background(connected ? Color(.red) : Color(red:0.0,green:0.4,blue:0.7))
.foregroundColor(.white)
}
}
}
}
在 SwiftUI 中,我有
@State public var utilisateur = ""
@State var connected = false
在这里,我有一个 TextField 来设置 utilisateur
的值。
TextField("nom.prenom", text: $utilisateur)
然后,如果 utilisateur
不是 ""
,我这样做了:
if self.connected{
Text("Connecté en tant que \(utilisateur)")
.padding()
.background(Color(red:0.3,green:0.8,blue:0.3))
.foregroundColor(.white)
}
if (!(self.utilisateur=="")){
Button(action: {self.connected.toggle()}) {
self.connected ? Text("Se déconnecter") : Text("Se connecter")
// .fontWeight(.bold)
}
.padding()
.background(self.connected ? Color(.red) : Color(red:0.0,green:0.4,blue:0.7))
.foregroundColor(.white)
}
我想要的是当用户点击 Se déconnecter
.
utilisateur
值
我尝试了很多可能性,但没有一个可行...
if !(self.connected){
$utilisateur=""
}
if !(self.connected){
utilisateur=""
}
if !(self.connected){
self.utilisateur=""
}
if !(self.connected){
self.$utilisateur=""
}
有人知道怎么做吗?
您应该使用的正确方法是 self.utilisateur = ""
将此行添加到 Button
的操作块中。这是执行此操作所需的工作代码:
struct CV: View {
@State private var utilisateur = ""
@State private var connected = false
@State private var buttonTitle = "connect"
var body: some View {
VStack {
TextField("Connect to??", text: $utilisateur)
if connected {
Text("Connected to \(utilisateur)")
.padding()
.background(Color(red:0.3,green:0.8,blue:0.3))
.foregroundColor(.white)
}
if !utilisateur.isEmpty {
Button(action: {
if self.buttonTitle == "connect" {
self.buttonTitle = "disconnect"
} else {
self.utilisateur = ""
}
self.connected.toggle()
}) {
Text(buttonTitle)
.fontWeight(.bold)
}
.padding()
.background(connected ? Color(.red) : Color(red:0.0,green:0.4,blue:0.7))
.foregroundColor(.white)
}
}
}
}