由于某些原因,此代码无法正常工作-无法更新组件。
DateTime d1 = await Navigator.of(context).push(
MaterialPageRoute(builder: (BuildContext _) => Calendar()));
setState(() {
widget.date = d2;
});
但是,如果您插入的等待时间超过100毫秒,则一切正常,并且组件已更新。
DateTime d1 = await Navigator.of(context).push(
MaterialPageRoute(builder: (BuildContext _) => Calendar()));
Future<DateTime> d2 = Future.delayed(Duration(milliseconds: 100), () {
print(d1);
return d1;
});
d2.then((DateTime date) => setState(() {
widget.date = date;
}));
解释为什么会这样吗?