Flutter,将私有方法分解为助手 class。参数问题
Flutter, break out private method to a helper class. Arguments problem
我想分解此方法并在助手 class 中使其成为 public 但是我 运行 在尝试将上下文传递给它时出现此错误?它需要两个必需的上下文和 BuildContext
但我不知道如何实现它?我收到这个错误。这似乎也是两个上下文参数的问题:
“需要 2 个位置参数,但找到 0 个。尝试添加缺少的参数”
或者如果我键入第一个上下文,它是:
“需要 1 个位置参数,但找到 0 个。尝试添加缺少的参数”
私有方法:
_showDialog() {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('Title'),
content: Text('Body'),
actions: <Widget>[
OutlinedButton(
child: Text('Close'),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
}
Public 方法(有两个上下文参数):
class _LegendScreenState extends State<LegendScreen> {
showDialog(context, BuildContext context) {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('Title'),
content: Text('Body'),
actions: <Widget>[
OutlinedButton(
child: Text('Close'),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
}
}
删除一个上下文参数。你只需要一个。
showDialog(context, BuildContext context) {
应该是:
showDialog(BuildContext context) {
出现此问题是因为,您定义的 showDialog
方法已在 material.dart
上定义。它与名称重叠。尝试将助手 class 重命名为 appDialog
之类的名称并传递 context
.
appDialog(BuildContext context) {
showDialog(
context: context,
builder: (BuildContext context) {
更多关于showDialog
我想分解此方法并在助手 class 中使其成为 public 但是我 运行 在尝试将上下文传递给它时出现此错误?它需要两个必需的上下文和 BuildContext
但我不知道如何实现它?我收到这个错误。这似乎也是两个上下文参数的问题:
“需要 2 个位置参数,但找到 0 个。尝试添加缺少的参数”
或者如果我键入第一个上下文,它是:
“需要 1 个位置参数,但找到 0 个。尝试添加缺少的参数”
私有方法:
_showDialog() {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('Title'),
content: Text('Body'),
actions: <Widget>[
OutlinedButton(
child: Text('Close'),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
}
Public 方法(有两个上下文参数):
class _LegendScreenState extends State<LegendScreen> {
showDialog(context, BuildContext context) {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('Title'),
content: Text('Body'),
actions: <Widget>[
OutlinedButton(
child: Text('Close'),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
}
}
删除一个上下文参数。你只需要一个。
showDialog(context, BuildContext context) {
应该是:
showDialog(BuildContext context) {
出现此问题是因为,您定义的 showDialog
方法已在 material.dart
上定义。它与名称重叠。尝试将助手 class 重命名为 appDialog
之类的名称并传递 context
.
appDialog(BuildContext context) {
showDialog(
context: context,
builder: (BuildContext context) {
更多关于showDialog