StatefulWidget to StatefulWidget如何在类Test2 setstate中更改字符串TimeSetdata
class Test1 extends StatefulWidget {
@override
_Test1State createState() => _Test1State();
}
class _Test1State extends State<Test1> {
String TimeSetdata = "9.00 AM";
@override
Widget build(BuildContext context) {
...
Text(TimeSetdata);
}
}
class Test2 extends StatefulWidget {
@override
_Test2State createState() => _Test2State();
}
class _Test2State extends State<Test2> {
@override
Widget build(BuildContext context) {
...
onPressed: () {
setState(() {
TimeSetdata = "11.00 AM";
});
};
}
}如何在类setState中将Test2文本( TimeSetdata )中的字符串TimeSetdata更改为“11.00AM”;
发布于 2019-02-13 16:00:36
允许父函数将回调函数传递给子函数,并传递回调,当从子调用时,更新父函数中的值。
这假设Test2是Test1的孩子(您在问题中没有明确说明这一点)。
typedef StringCallback = void Function(String);
class Test2 extends StatefulWidget {
Test2({@required this.onPressed});
final StringCallback onPressed;
@override
_Test2State createState() => _Test2State(onPressed: onPressed);
}
class _Test2State extends State<Test2> {
_Test2State({@required this.onPressed});
final StringCallback onPressed;
@override
Widget build(BuildContext context) {
...
onPressed: () => onPressed(),
}
}
class _Test1State extends State<Test1> {
String TimeSetdata = "9.00 AM";
@override
Widget build(BuildContext context) {
...
Test2(onPressed: (s) => setState(() => TimeSetdata = s),
...
Text(TimeSetdata);
}
}https://stackoverflow.com/questions/54673132
复制相似问题