我正在使用Provider
。我上课了。而且我需要从字段中将值设置为Provider
。但是我无法在这里访问context
。
class _DateAndTimePickerDemoState extends State<DateAndTimePickerDemo>
{
DateTime _fromDate = DateTime.now();
Provider.of<AppState>(context).selected_period = date; // here
}
如何在类字段中设置提供者值?
答案 0 :(得分:1)
您可以通过两种方式获得context
:
initState
在Future.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
}