docs.flutter.io/flutter/widgets/...
аюсь изменить состояние из другого виджета во Флаттере. Например, в следующем примере я установил состояние через несколько секунд.
Вот код для этого:
class _MyAppState extends State<MyApp> {
int number = 1;
@override
void initState() {
super.initState();
new Future.delayed(new Duration(seconds: 5)).then((_) {
this.setState(() => number = 2);
print("Changed");
});
}
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new Center(
child: new FlatButton(
color: Colors.blue,
child: new Text("Next Page"),
onPressed: () {
Navigator.of(context).push(new MaterialPageRoute(
builder: (BuildContext context) => new StatefulBuilder(builder: (BuildContext context, setState) =>new MySecondPage(number))
));
},
),
),
);
}
}
Я пытался с помощьюInheritedWidget
, но это не сработает, если я не оберну его вокруг своего виджета верхнего уровня, что неосуществимо для того, что я пытаюсь сделать (приведенный выше код является упрощением того, что я пытаюсь достичь).
Есть идеи о том, как лучше всего добиться этого во Флаттере?