【问题标题】:DatePicker + Streams, can be done?DatePicker + Streams,可以做到吗?
【发布时间】:2020-06-06 00:55:38
【问题描述】:

我正在使用流在我的小部件之间传递数据,但现在我正在构建一个 DatePicker,我遇到了一个问题。

DatePicker 返回 Future,我不知道如何将其推送到我的流中。

你们对如何解决这个问题有什么建议吗?

谢谢

【问题讨论】:

    标签: flutter dart datepicker stream-builder


    【解决方案1】:

    我还没有尝试过 DatePicker,但我认为可以通过 asStream() 将其更改为流式传输,然后您可以将其通过管道传输到您的流式传输中。

    showDatePicker(
          context: context,
          initialDate: DateTime.now(),
        ).asStream().pipe(/*your streamcontroller*/);
    
    

    或者你可以使用 addStream。

    YourStreamController.sink.addStream(showDatePicker(
          context: context,
          initialDate: DateTime.now(),
        ).asStream());
    
    

    【讨论】:

      【解决方案2】:

      我使用的是 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);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-18
        • 2022-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-20
        相关资源
        最近更新 更多