如何从类字段设置提供者值?

时间:2019-08-07 13:00:29

标签: flutter flutter-provider

我正在使用Provider。我上课了。而且我需要从字段中将值设置为Provider。但是我无法在这里访问context

class _DateAndTimePickerDemoState extends State<DateAndTimePickerDemo> 
{
  DateTime _fromDate = DateTime.now();
  Provider.of<AppState>(context).selected_period = date; // here
}

如何在类字段中设置提供者值?

2 个答案:

答案 0 :(得分:1)

您可以通过两种方式获得context

  • 通过致电initStateFuture.delayed(Duration.zero,() {... context ...})内部
  • 将构建方法称为Widget build(BuildContext context) {...}

在您的情况下,我会在Provider.of<AppState>(context).selected_period = date;方法之后调用build,因为无论如何我都会在build方法中定义大多数函数,以便我可以轻松访问上下文。

答案 1 :(得分:1)

选项1 您可以使用覆盖方法initState()

  @override
  void initState() {
   super.initState();
   Future.delayed(Duration.zero,(){
     Provider.of<AppState>(context).selected_period = /* your value */;
   });
 }

第2个选项 您也可以在build()方法中设置值

  @override
  Widget build(BuildContext context) {
     Provider.of<AppState>(context).selected_period = /* your value */;
     // your rest of code is write here
 }