所以我试图从使用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?