Просто тестирую флаттер.Пример кода ниже представляет собой очень простое приложение.Проблема в том, что я не знаю, как вызвать функцию setState () внутри класса TestTextState, чтобы изменять текст каждый раз, когда нажимается кнопка изменения.
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Test app',
home: new Scaffold(
appBar: new AppBar(
title: new Text("Test"),
),
body: new Test(),
),
);
}
}
class Test extends StatelessWidget {
final TestText testText = new TestText();
void change() {
testText.text == "original" ? testText.set("changed") : testText.set("original");
}
@override
Widget build(BuildContext context) {
return new Column(
children: [
testText,
new RaisedButton(
child: new Text("change"),
onPressed: () => change(),
),
]
);
}
}
class TestText extends StatefulWidget {
String text = "original";
void set(String str) {
this.text = str;
}
@override
TestTextState createState() => new TestTextState();
}
class TestTextState extends State<TestText> {
@override
Widget build(BuildContext context) {
return new Text(this.widget.text);
}
}