我有一個用于匿名登錄的高級按鈕。當我單擊按鈕時,它會自動創建一個用戶 ID 并路由到主頁,但如果我向它發送垃圾郵件,直到主頁出現螢屏,它會創建許多不同的用戶 ID。我希望按鈕在點擊一次后無法點擊,我該怎么做?當我嘗試這種方式時,我收到錯誤引數型別“Future Function()?” 不能分配給引數型別“void Function()”,因為“Future Function()?” 可以為空,而 'void Function()' 不是。
MyElevatedButton(
child: Text('Sign In Anonymously'),
color: Colors.yellowAccent,
onPressed: _isLoading
? null
: () async {
setState(() {
_isLoading = true;
});
final user =
await Provider.of<Auth>(context, listen: false)
.signInAnonymously();
},
),
uj5u.com熱心網友回復:
創建一個bool跟蹤狀態類上的點擊事件
bool _isClicked = false;
如果用戶點擊它,讓它為真,然后繼續操作。
ElevatedButton(
onPressed: _isClicked
? null
: () {
setState(() {
_isClicked = true;
});
//rest code
},
child: Text(""),
),
uj5u.com熱心網友回復:
如果您使用有狀態小部件,只需添加一個變數來檢查處理。
Awidget Stateful... {
bool isProcessing = false;
...
MyElevatedButton(
...
onPressed: isProcessing ? null : () async {
setState(() {
isProcessing = true;
});
final user = await Provider.of<Auth>(context, listen: false)
.signInAnonymousle();
setState(() {
isProcessing = false;
});
...
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/377568.html
標籤:扑
上一篇:Flutterjson_serializable如果鍵可以有不同的名稱怎么辦
下一篇:我的專案使用'>=2.14.4<3.0.0'的dart,但是執行'>=2.11.9<3.0.0'會洗掉空安全。所以它會從這個范圍中選擇&
