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, но это не сработает, если я не оберну его вокруг своего виджета верхнего уровня, что неосуществимо для того, что я пытаюсь сделать (приведенный выше код является упрощением того, что я пытаюсь достичь).

Есть идеи о том, как лучше всего добиться этого во Флаттере?

Ответы на вопрос(1)

Ваш ответ на вопрос