Я обнаружил в Интернете, что поля, классы и методы подчеркивания будут доступны только в файле .dart, в котором они определены, но похоже, что мой код противоречит этому:
Код sinppet из main.dart:
class _TestState extends State<Test> {
int a = 0;
void increase() {
setState(() {
a = a + 1;
});
}
var b = ['hello', 'bye'];
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Column(
children: <Widget>[Text(b[a]), MyButton(increase)],
)),
);
}
}
Фрагмент кода из MyButton.dart:
class MyButton extends StatelessWidget {
final Function x;
MyButton(this.x);
@override
Widget build(BuildContext context) {
return Container(
child: RaisedButton(onPressed: x,child:Text('press me')),
);
}
}
Как MyButton может вызывать метод из _TestState, если он существует в другом файле.