所以我试图从使用Bloc的DatePicker包中选择一个日期。showDialog
这是显示的代码Dialog
:
onPressed: () {
showDialog(
context: context,
barrierDismissible: true,
child: _buildEditDialog(context, arguments),
);
},
这是Dialog
的内容:
void _openCalendarPicker(BuildContext context, SearchHotelArguments arguments) async {
final DateTime dateTimeNow = DateTime.now();
final List<DateTime> picked = await DateRagePicker.showDatePicker(
context: context,
initialFirstDate: arguments.checkInDate ?? dateTimeNow,
initialLastDate: arguments.checkOutDate ?? dateTimeNow.add(Duration(days: 1)),
firstDate: dateTimeNow,
lastDate: dateTimeNow.add(Duration(days: 365 * 10)));
if (picked != null && picked.length == 2) {
context.read<HotelChangeParamsBloc>().setCheckInDate(picked[0]);
context.read<HotelChangeParamsBloc>().setCheckOutDate(picked[1]);
}
}
现在,这里的问题是,从Dialog
我打开一个弹出窗口DateRangePicker
,选择Date
并提交它,但Dialog
日期与以前相同。如果我关闭并重新打开,Dialog
我可以看到日期发生了变化。所以Dialog
不是自己刷新数据(除非我重新打开它)。
有谁知道我如何用新Date
的来刷新对话框DateRangePicker
?