Dart 如何在颤振中执行回访
我正在尝试测试Dart 如何在颤振中执行回访,dart,flutter,Dart,Flutter,我正在尝试测试VoidCallback,因此我创建了主文件,它有一个从小部件中的一个平面按钮调用的函数,它位于一个单独的文件中,但不起作用 main.dart import 'package:flutter/material.dart'; import 'controller_test.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget bui
VoidCallback
,因此我创建了主文件,它有一个从小部件中的一个平面按钮调用的函数,它位于一个单独的文件中,但不起作用
main.dart
import 'package:flutter/material.dart';
import 'controller_test.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Retrieve Text Input',
home: MyCustomForm(),
);
}
}
// Define a Custom Form Widget
class MyCustomForm extends StatefulWidget {
@override
_MyCustomFormState createState() => _MyCustomFormState();
}
class _MyCustomFormState extends State<MyCustomForm> {
final myController = TextEditingController();
@override
void initState() {
super.initState();
myController.addListener(_printLatestValue);
}
_printLatestValue() {
print("Second text field: ${myController.text}");
}
_test() {
print("hi there");
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Retrieve Text Input'),
),
body: Con(_test, myController)
);
}
}
当我点击小部件中的
FlatButton
时,什么都没有发生,我希望hi那里
会被打印出来我只是在另一个答案中找到了它
我缺少(),因此正确的调用是:
FlatButton(
onPressed: () => clickCallback(),
child: Text("click me"),
)
这里有两种选择
onPressed:()=>fun()
类似于onPressed参数是调用fun的匿名方法onPressed:fun
类似于onPressed参数是函数fun您甚至可以编写onPressed:clickCallback,在这种情况下很容易忘记();没有()的另一种方法也很好。
FlatButton(
onPressed: () => clickCallback(),
child: Text("click me"),
)