我正在玩一个简单的颤振倒计时应用程序。它由 2 个页面、时钟和一个设置页面组成,用于设置要倒计时的分钟和秒。
在时钟页面 (HomeWidget) 上,用户单击按钮导航到设置页面。编辑值后,用户按下后退硬件键或应用栏中的按钮导航回时钟页面。
class _HomeWidgetState extends State<HomeWidget> {
@override
Widget build(BuildContext context) {
TimeService _timeService = ScopedModel.of<TimeService>(context);
SettingsModel _settingsModel = ScopedModel.of<SettingsModel>(context);
_timeService.setTime(_settingsModel.minutes, _settingsModel.seconds);
return Scaffold( ... display the clock, navigation buttons, etc ... )}
我要理解的问题是,在返回时,我正在处理倒计时的时间服务类中设置新值。但是在代码示例中,每次重绘时钟(每秒)时都会更新时间服务。倒计时不起作用,值保持不变。它没有显示“10:29”,而是显示“10:30”。我不知道如何处理我的 TimeService 类和我的 SettingsModel 类之间的依赖关系。
当用户导航返回时,如何正确处理时间服务类中设置值的分配?该build
方法显然是错误的地方。谁能给我一个提示?