如何在 Dart 中将 Navigator 函数作为参数传递?
How to pass Navigator function as a parameter in Dart?
我有一个代表按钮的自定义小部件,这个小部件位于“lib”文件夹内一个名为“Widgets”的单独文件夹中,这就是按钮小部件文件
import 'package:flutter/material.dart';
Widget buttonWidget(String text, Function action) {
return ElevatedButton(
onPressed: () => action,
child: Text(text, style: const TextStyle(fontSize: 20),
);
}
现在在 main.dart 文件中,我希望 buttonWidget 使用 Navigator.pushNamed 函数,所以我将 buttonWidget 命名为
buttonWidget("Navigate", Navigator.pushNamed(context, '/screenTwo')),
但是 buttonWidget 调用给我这个错误
The argument type 'Future<Object?>' can't be assigned to the parameter type 'Function'.
您需要围绕该调用创建一个匿名函数,就像您将它直接传递给 onPressed
参数一样。
buttonWidget("Navigate", () => Navigator.pushNamed(context, '/screenTwo')),
或
buttonWidget("Navigate", () {
Navigator.pushNamed(context, '/screenTwo');
}),
我有一个代表按钮的自定义小部件,这个小部件位于“lib”文件夹内一个名为“Widgets”的单独文件夹中,这就是按钮小部件文件
import 'package:flutter/material.dart';
Widget buttonWidget(String text, Function action) {
return ElevatedButton(
onPressed: () => action,
child: Text(text, style: const TextStyle(fontSize: 20),
);
}
现在在 main.dart 文件中,我希望 buttonWidget 使用 Navigator.pushNamed 函数,所以我将 buttonWidget 命名为
buttonWidget("Navigate", Navigator.pushNamed(context, '/screenTwo')),
但是 buttonWidget 调用给我这个错误
The argument type 'Future<Object?>' can't be assigned to the parameter type 'Function'.
您需要围绕该调用创建一个匿名函数,就像您将它直接传递给 onPressed
参数一样。
buttonWidget("Navigate", () => Navigator.pushNamed(context, '/screenTwo')),
或
buttonWidget("Navigate", () {
Navigator.pushNamed(context, '/screenTwo');
}),