函数中未定义名称 'context'
Undefined name 'context' in fuction
我在任何单独的 dart 文件中定义了一个 showSnackBarr() 函数并在其他 dart 文件中使用,但在这个 stared ** 上下文下显示红线。
showSnackBar( **context** , e.toString);
showSnackBar(BuildContext context, String text) {
return ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(text),
));
}
on FirebaseAuthException catch(e){
showSnackBar(context, e.message!);
res = false;
}
在您调用函数的地方没有名为 context
的 variable/instance 成员。通常,context
在 State
对象中作为 属性 可用。 BuildContext
的实例也被传递到 Widgets 的 build
方法中。
更多关于 BuildContext
。
您似乎在尝试从小部件外部的功能显示快餐栏。
为此,您必须将 BuildContext 连同任何参数一起传递给函数。
示例:
void myFunc(BuildContext context, dynamic data){
try{
// perform operation
}
catch(e){
showSnackBar(context, e.message!);
}
}
并从小部件中调用函数
myFunc(context, "any data");
或
如果不想每次都传递构建上下文,可以使用。
我这样做是为了将一个变量初始化到 class 中,我在其中使用此函数它正在运行 final BuildContext context ; AuthMethods({required this.context });
并创建一个构造函数。
我在任何单独的 dart 文件中定义了一个 showSnackBarr() 函数并在其他 dart 文件中使用,但在这个 stared ** 上下文下显示红线。
showSnackBar( **context** , e.toString);
showSnackBar(BuildContext context, String text) {
return ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(text),
));
}
on FirebaseAuthException catch(e){
showSnackBar(context, e.message!);
res = false;
}
在您调用函数的地方没有名为 context
的 variable/instance 成员。通常,context
在 State
对象中作为 属性 可用。 BuildContext
的实例也被传递到 Widgets 的 build
方法中。
更多关于 BuildContext
。
您似乎在尝试从小部件外部的功能显示快餐栏。
为此,您必须将 BuildContext 连同任何参数一起传递给函数。
示例:
void myFunc(BuildContext context, dynamic data){
try{
// perform operation
}
catch(e){
showSnackBar(context, e.message!);
}
}
并从小部件中调用函数
myFunc(context, "any data");
或
如果不想每次都传递构建上下文,可以使用
我这样做是为了将一个变量初始化到 class 中,我在其中使用此函数它正在运行 final BuildContext context ; AuthMethods({required this.context });
并创建一个构造函数。