如何解决从将来的函数中获取数据并更改对象
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});
}
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 举报,一经查实,本站将立刻删除。