Need to update a boolean flag from other stateful widget

Viewed 795

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

1 Answers

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

Related