【发布时间】:2020-06-06 00:55:38
【问题描述】:
我正在使用流在我的小部件之间传递数据,但现在我正在构建一个 DatePicker,我遇到了一个问题。
DatePicker 返回 Future,我不知道如何将其推送到我的流中。
你们对如何解决这个问题有什么建议吗?
谢谢
【问题讨论】:
标签: flutter dart datepicker stream-builder
我正在使用流在我的小部件之间传递数据,但现在我正在构建一个 DatePicker,我遇到了一个问题。
DatePicker 返回 Future,我不知道如何将其推送到我的流中。
你们对如何解决这个问题有什么建议吗?
谢谢
【问题讨论】:
标签: flutter dart datepicker stream-builder
我还没有尝试过 DatePicker,但我认为可以通过 asStream() 将其更改为流式传输,然后您可以将其通过管道传输到您的流式传输中。
showDatePicker(
context: context,
initialDate: DateTime.now(),
).asStream().pipe(/*your streamcontroller*/);
或者你可以使用 addStream。
YourStreamController.sink.addStream(showDatePicker(
context: context,
initialDate: DateTime.now(),
).asStream());
【讨论】:
我使用的是 RxDart 中的 BehaviorSubject 而不是 StreamControllers,所以我不能直接将 DatePicker 作为 Stream 传递。
我是flutter的新手,所以我不知道这是否是解决它的最佳方法,但我成功地做到了:
void _pickDate(BuildContext context) async {
// I use this manager for my sinks and streams
InputManager manager = Provider.of(context).fetch(InputManager);
DateTime _date = await showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(DateTime.now().year - 5),
lastDate: DateTime(DateTime.now().year + 1),
);
if (_date != null) {
setState(() {
inDate = _date;
});
}
manager.setDate.add(inDate);
}
【讨论】: