2

I am trying to create a separate Stateful widget for network error page , but i am stuck at how to update the boolean flag which is inside welcome.dart via networkerror.dart

NetworkError.dart

  class NetworkError extends StatefulWidget {
@override
  State<StatefulWidget> createState() {
    return NetworkErrorState() ;
  }
}
class NetworkErrorState extends State<NetworkError>{


  @override
  Widget build(BuildContext context) {
    return Container(

      child: Center(
          child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          Image.asset('assets/no_network.png'),
          RaisedButton(
            color: Color(0xff7F00FF),
            child: Text(
              'Retry',
              style: TextStyle(
                  color: Colors.black, letterSpacing: 2.0, fontSize: 15.0),
            ),
            onPressed: () {

              NetworkUtil().netcheck(context).then((result) {
                if (result) {
                WelcomePage().createState().isConnected=true;
                } else {
                WelcomePage().createState().isConnected=false;
                }
              });
            },
          )
        ],
      )),
    );
  }
}

Welcome.dart

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        drawer: Drawer(
          child: ListView(
            children: drawerWidgets(),
          ),
        ),
        key: _scaffoldKey,

        body: isConnected
            ? isLoading
                ? showSpinner()
                : Container(
                    child: Center(
                      child: ListView(
                        shrinkWrap: true,
                        children: <Widget>[
                          Center(
                            child: Container(
                              padding: const EdgeInsets.all(16.0),
                              child: Form(
                                child: Column(
                                  crossAxisAlignment:
                                      CrossAxisAlignment.stretch,
                                  children: submitWidgets(context),
                                ),
                              ),
                            ),
                          )
                        ],
                      ),
                    ),
                  )
            : NetworkError(),
      ),
    );
  }
}

I want to update the isConnected boolean flag from network.dart to true when network data is available.Sorry if wont made it simpler.Thanx

rahul.sharma
  • 457
  • 6
  • 20
  • Possible duplicate of [How to Set/Update Sate of StatefulWidget from other StatefulWidget in Flutter?](https://stackoverflow.com/questions/48481590/how-to-set-update-sate-of-statefulwidget-from-other-statefulwidget-in-flutter) – Arnold Parge Nov 15 '18 at 15:08

1 Answers1

0

You can use of ScopedModel or BloC in-order to change states from different widgets anywhere in you app.

Harsha pulikollu
  • 2,386
  • 15
  • 28