在Navigator.of之后调用setState的奇怪行为(上下文)

时间:2019-07-10 22:33:12

标签: flutter

由于某些原因,此代码无法正常工作-无法更新组件。

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;
}));

解释为什么会这样吗?

0 个答案:

没有答案