微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从将来的函数中获取数据并更改对象

如何解决从将来的函数中获取数据并更改对象

美好的一天! 我有一个TodoItem类

    class TodoItem with ChangeNotifier {
  final String id;
  final DateTime creationDate;
  final DateTime doingDate;
  final String text;
  final Color color;

  TodoItem({this.id,this.creationDate,this.doingDate,this.text,this.color});

    }

然后我有一个DatePicker

class _TopWithDateAndOptionState extends State<TopWithDateAndOption> {
  var finaldate;
  void callDatePicker() async {
    var order = await getDate().then(
      (value) => print("VAL = ${value}"),);
    // setState(() {
    //   finaldate = order;
    //   print("pickeddate = ${finaldate}");
    // });
  }

  Future<DateTime> getDate() {
    // Imagine that this function is
    // more complex and slow.
    return showDatePicker(
      context: context,initialDate: DateTime.Now(),firstDate: DateTime(2018),lastDate: DateTime(2030),builder: (BuildContext context,Widget child) {
        return Theme(
          data: ThemeData.light(),child: child,);
      },);
  }

最后,我通过提供程序获得了TodoItem类的对象。

 @override
  Widget build(BuildContext context) {
    final todoItem = Provider.of<TodoItem>(context);

所以问题是如何用新值 finaldate 更改对象 TodoItem 中的 doingDate ? 如何检查此变量是否已被DataPicker的新数据更改?我应该使用任何侦听器还是更简单的方法

解决方法

我的问题是有状态的小部件。我已将其更改为无状态,并且可以正常工作/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。