Flutter中谷歌日历事件结束时间添加Duration未生效问题排查
问题解决:DateTime.add()未更新时间的原因及修复
在Flutter中,DateTime是不可变对象,调用add()方法时不会修改原变量本身,而是返回一个包含新时间的DateTime实例。你的代码只调用了add()但没有将返回值重新赋值给endTime,所以原变量的数值不会发生变化。
修正后的代码
DateTime endTime = ref.read(eventsNotifierProvider).eventDate!; // 将add方法返回的新时间对象赋值给endTime endTime = endTime.add(Duration(minutes: int.parse(eventDurationController.text)));
补充说明
不管是从TextField解析时长还是硬编码测试值,都必须接收add()方法返回的新对象才能更新endTime。比如初始时间为2023年12月27日15:24,调用add(Duration(minutes:30))后会生成一个新的DateTime对象(2023-12-27 15:54),只有把这个新对象赋值给endTime,变量才会更新为目标时间。
内容的提问来源于stack exchange,提问作者LostTexan
相关产品推荐
相关产品推荐

