我有一個對話框,里面有 datePicker,但是當我選擇日期時 Text("${selectedDate.toLocal()}".split(' ')[0]) 沒有更新。我該如何解決這個問題?我嘗試了很多解決方案,但它不起作用
代碼:
Future birthday(widgets) => showDialog(
context: context,
builder: (context) {
return StatefulBuilder(
builder: (context, StateSetter setState) {
return AlertDialog(
title: Text("${selectedDate.toLocal()}".split(' ')[0]),
content: SizedBox(
child: Column(
children: [
InkWell(
child: Row(
children: const [
Text(
'- Select date',
style: TextStyle(fontSize: 16),
),
]),
onTap: () => selectDate(context),
),
],
),
),
actions: [
OutlinedButton(
onPressed: () async => {},
style: OutlinedButton.styleFrom(
side: const BorderSide(width: 5.0, color: Colors.transparent),
),
child: const Text(
'Confirm',
style: TextStyle(color: Colors.grey, fontSize: 16.0),
),
),
],
);
selectDate(BuildContext context) async {
final DateTime? picked = await showDatePicker(
context: context,
initialDate: selectedDate,
firstDate: DateTime(1000, 1),
lastDate: DateTime(2023, 1));
if (picked != null && picked != selectedDate) {
setState(() {
selectedDate = picked;
});
}
}
uj5u.com熱心網友回復:
我認為當前setState是從國家級獲得的。嘗試通過StatefulBuildersetState onselectDate
onTap: () => selectDate(context, setState),
并作為位置引數接收
selectDate(BuildContext context, setState) async {
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/523390.html
上一篇:Flutter用戶過濾器
