How to prevent passing down BuildContext?












0















Currently I get the BuildContext from the build method in HomeScreen, and then I have to pass it down to _gridSliver then down to _storeCard.



How can I write the code so that I don't need to pass the context down?



Maybe I can create a new private StatelessWidget called _StoreCard that will have its own build method and thus its own BuildContext?



class HomeScreen extends StatelessWidget {
HomeScreen({Key key}) : super(key: key);

@override
Widget build(BuildContext context) {
return StoreConnector<AppState, List<MyStore.Store>>(
converter: (Store<AppState> store) => store.state.home.stores,
builder: (BuildContext context, List<MyStore.Store> stores) =>
CustomScrollView(slivers: <Widget>[_gridSliver(stores, context)]));
}

Widget _gridSliver(stores, context) {
return SliverGrid(
delegate: SliverChildListDelegate(List<Widget>.from(stores.map(_storeCard, context))));
}

Widget _storeCard(MyStore.Store store, BuildContext context) {
return InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (_) => StoreScreen(storeId: store.id)),
);
},
child: Container(child: Text(store.name))
);
}
}


Another instance of this problem is I navigate on a child function.



@override
Widget build(BuildContext context) {
return Column(
children: [
WhiteButton(text: "Login with Facebook", onPressed: _loginWithFacebook),
WhiteButton(text: "Login with Google", onPressed: _loginWithGoogle),
])
)
}

_loginWithFacebook(context) async {
...
var user = User.fromFacebook(result.accessToken.token, json.decode(graphResponse.body));
await _login(user, context);
}
}

_loginWithGoogle(context) async {
...
GoogleSignInAccount googleUser = await _googleSignIn.signIn();
await _login(User.fromGoogle(googleUser), context);
}

_login(user, context) async {
var fetchedUser = await MeService.getUser(user);
if (fetchedUser != null) {
loginSuccess(fetchedUser);
Navigator.popUntil(context, ModalRoute.withName(MainRoutes.root));
} else {
Navigator.push(
context,
MaterialPageRoute(builder: (_) => RegisterScreen(user: user)),
);
}
}









share|improve this question




















  • 1





    With stateless widgets it's best to just pass it along or migrate the methods to widgets of their own right.

    – Günter Zöchbauer
    Nov 22 '18 at 10:11
















0















Currently I get the BuildContext from the build method in HomeScreen, and then I have to pass it down to _gridSliver then down to _storeCard.



How can I write the code so that I don't need to pass the context down?



Maybe I can create a new private StatelessWidget called _StoreCard that will have its own build method and thus its own BuildContext?



class HomeScreen extends StatelessWidget {
HomeScreen({Key key}) : super(key: key);

@override
Widget build(BuildContext context) {
return StoreConnector<AppState, List<MyStore.Store>>(
converter: (Store<AppState> store) => store.state.home.stores,
builder: (BuildContext context, List<MyStore.Store> stores) =>
CustomScrollView(slivers: <Widget>[_gridSliver(stores, context)]));
}

Widget _gridSliver(stores, context) {
return SliverGrid(
delegate: SliverChildListDelegate(List<Widget>.from(stores.map(_storeCard, context))));
}

Widget _storeCard(MyStore.Store store, BuildContext context) {
return InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (_) => StoreScreen(storeId: store.id)),
);
},
child: Container(child: Text(store.name))
);
}
}


Another instance of this problem is I navigate on a child function.



@override
Widget build(BuildContext context) {
return Column(
children: [
WhiteButton(text: "Login with Facebook", onPressed: _loginWithFacebook),
WhiteButton(text: "Login with Google", onPressed: _loginWithGoogle),
])
)
}

_loginWithFacebook(context) async {
...
var user = User.fromFacebook(result.accessToken.token, json.decode(graphResponse.body));
await _login(user, context);
}
}

_loginWithGoogle(context) async {
...
GoogleSignInAccount googleUser = await _googleSignIn.signIn();
await _login(User.fromGoogle(googleUser), context);
}

_login(user, context) async {
var fetchedUser = await MeService.getUser(user);
if (fetchedUser != null) {
loginSuccess(fetchedUser);
Navigator.popUntil(context, ModalRoute.withName(MainRoutes.root));
} else {
Navigator.push(
context,
MaterialPageRoute(builder: (_) => RegisterScreen(user: user)),
);
}
}









share|improve this question




















  • 1





    With stateless widgets it's best to just pass it along or migrate the methods to widgets of their own right.

    – Günter Zöchbauer
    Nov 22 '18 at 10:11














0












0








0








Currently I get the BuildContext from the build method in HomeScreen, and then I have to pass it down to _gridSliver then down to _storeCard.



How can I write the code so that I don't need to pass the context down?



Maybe I can create a new private StatelessWidget called _StoreCard that will have its own build method and thus its own BuildContext?



class HomeScreen extends StatelessWidget {
HomeScreen({Key key}) : super(key: key);

@override
Widget build(BuildContext context) {
return StoreConnector<AppState, List<MyStore.Store>>(
converter: (Store<AppState> store) => store.state.home.stores,
builder: (BuildContext context, List<MyStore.Store> stores) =>
CustomScrollView(slivers: <Widget>[_gridSliver(stores, context)]));
}

Widget _gridSliver(stores, context) {
return SliverGrid(
delegate: SliverChildListDelegate(List<Widget>.from(stores.map(_storeCard, context))));
}

Widget _storeCard(MyStore.Store store, BuildContext context) {
return InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (_) => StoreScreen(storeId: store.id)),
);
},
child: Container(child: Text(store.name))
);
}
}


Another instance of this problem is I navigate on a child function.



@override
Widget build(BuildContext context) {
return Column(
children: [
WhiteButton(text: "Login with Facebook", onPressed: _loginWithFacebook),
WhiteButton(text: "Login with Google", onPressed: _loginWithGoogle),
])
)
}

_loginWithFacebook(context) async {
...
var user = User.fromFacebook(result.accessToken.token, json.decode(graphResponse.body));
await _login(user, context);
}
}

_loginWithGoogle(context) async {
...
GoogleSignInAccount googleUser = await _googleSignIn.signIn();
await _login(User.fromGoogle(googleUser), context);
}

_login(user, context) async {
var fetchedUser = await MeService.getUser(user);
if (fetchedUser != null) {
loginSuccess(fetchedUser);
Navigator.popUntil(context, ModalRoute.withName(MainRoutes.root));
} else {
Navigator.push(
context,
MaterialPageRoute(builder: (_) => RegisterScreen(user: user)),
);
}
}









share|improve this question
















Currently I get the BuildContext from the build method in HomeScreen, and then I have to pass it down to _gridSliver then down to _storeCard.



How can I write the code so that I don't need to pass the context down?



Maybe I can create a new private StatelessWidget called _StoreCard that will have its own build method and thus its own BuildContext?



class HomeScreen extends StatelessWidget {
HomeScreen({Key key}) : super(key: key);

@override
Widget build(BuildContext context) {
return StoreConnector<AppState, List<MyStore.Store>>(
converter: (Store<AppState> store) => store.state.home.stores,
builder: (BuildContext context, List<MyStore.Store> stores) =>
CustomScrollView(slivers: <Widget>[_gridSliver(stores, context)]));
}

Widget _gridSliver(stores, context) {
return SliverGrid(
delegate: SliverChildListDelegate(List<Widget>.from(stores.map(_storeCard, context))));
}

Widget _storeCard(MyStore.Store store, BuildContext context) {
return InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (_) => StoreScreen(storeId: store.id)),
);
},
child: Container(child: Text(store.name))
);
}
}


Another instance of this problem is I navigate on a child function.



@override
Widget build(BuildContext context) {
return Column(
children: [
WhiteButton(text: "Login with Facebook", onPressed: _loginWithFacebook),
WhiteButton(text: "Login with Google", onPressed: _loginWithGoogle),
])
)
}

_loginWithFacebook(context) async {
...
var user = User.fromFacebook(result.accessToken.token, json.decode(graphResponse.body));
await _login(user, context);
}
}

_loginWithGoogle(context) async {
...
GoogleSignInAccount googleUser = await _googleSignIn.signIn();
await _login(User.fromGoogle(googleUser), context);
}

_login(user, context) async {
var fetchedUser = await MeService.getUser(user);
if (fetchedUser != null) {
loginSuccess(fetchedUser);
Navigator.popUntil(context, ModalRoute.withName(MainRoutes.root));
} else {
Navigator.push(
context,
MaterialPageRoute(builder: (_) => RegisterScreen(user: user)),
);
}
}






dart flutter






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 22 '18 at 10:33







psyanite

















asked Nov 22 '18 at 10:08









psyanitepsyanite

167




167








  • 1





    With stateless widgets it's best to just pass it along or migrate the methods to widgets of their own right.

    – Günter Zöchbauer
    Nov 22 '18 at 10:11














  • 1





    With stateless widgets it's best to just pass it along or migrate the methods to widgets of their own right.

    – Günter Zöchbauer
    Nov 22 '18 at 10:11








1




1





With stateless widgets it's best to just pass it along or migrate the methods to widgets of their own right.

– Günter Zöchbauer
Nov 22 '18 at 10:11





With stateless widgets it's best to just pass it along or migrate the methods to widgets of their own right.

– Günter Zöchbauer
Nov 22 '18 at 10:11












2 Answers
2






active

oldest

votes


















3














To get a new BuildContext, you have two main solutions:




  • Extract part of the subtree into a new widget, typically StatelessWidget. And then use it's BuildContext from the build method


  • Use Builder widget, which is basically a reusable widget made to obtain a BuildContext:



Example:



 @override
Widget build(BuildContext context) {
return Builder(
builder: (context) {
// do something with this new context
},
);
}





share|improve this answer
























  • Hi Rémi Rousselet, thank you so much for your quick response!!!

    – psyanite
    Nov 22 '18 at 10:28



















1














You have to use a Bloc pattern that uses an Inherited Widget, but still you'll have to pass context, but in a more straight forward way. I recommend using this app by Stephen Grider, to figure out how the whole thing works. He explains in his tutorial how to put the whole thing together but I can't link you to that because that would be advertising.



The idea is, you first create a file Bloc.dart that is going to contain your logic, then you create what is called a Provider, in a Provider.dart.



Provider.dart:



class Provider extends InheritedWidget {
final bloc = Bloc();

Provider({Key key, Widget child}) : super(key: key, child: child);

bool updateShouldNotify(_) => true;

static Bloc of(BuildContext context) {
return (context.inheritFromWidgetOfExactType(Provider) as Provider).bloc;
}
}


In your file that contains the Material App, you wrap the material App with the provider:



Widget build(BuildContext context) {
return Provider(
child: MaterialApp(


And then you use the provider in every other class down the three of widgets.



class HomeScreen extends StatelessWidget {


@override
Widget build(BuildContext context) {
final bloc = Provider.of(context); // this is where you insert the provider
return StoreConnector<AppState, List<MyStore.Store>>(
converter: (Store<AppState> store) => store.state.home.stores,
builder: (BuildContext context, List<MyStore.Store> stores) =>
CustomScrollView(slivers: <Widget>[_gridSliver(stores, context)]));
}

Widget _gridSliver(stores) {
final bloc = Provider.of(context);
return SliverGrid(
delegate: SliverChildListDelegate(List<Widget>.from(stores.map(_storeCard, context))));
}

Widget _storeCard(MyStore.Store store) {
final bloc = Provider.of(context);
return InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (_) => StoreScreen(storeId: store.id)),
);
},
child: Container(child: Text(store.name))
);


}
}


I'm a total noob with flutter and take everything with grain of salt, but this is what I would use. Hope it helps.






share|improve this answer
























  • I like this solution. Is this the same thing as using the BLoC architecture (like MVC)? Otherwise I don't see it used anywhere else. I do wish I could do something like this, but this solution is workaround not suggested by the framework. I'd rather write ugly code than to have some magcial workaround that I might forget later.

    – psyanite
    Nov 23 '18 at 21:25











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53428475%2fhow-to-prevent-passing-down-buildcontext%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









3














To get a new BuildContext, you have two main solutions:




  • Extract part of the subtree into a new widget, typically StatelessWidget. And then use it's BuildContext from the build method


  • Use Builder widget, which is basically a reusable widget made to obtain a BuildContext:



Example:



 @override
Widget build(BuildContext context) {
return Builder(
builder: (context) {
// do something with this new context
},
);
}





share|improve this answer
























  • Hi Rémi Rousselet, thank you so much for your quick response!!!

    – psyanite
    Nov 22 '18 at 10:28
















3














To get a new BuildContext, you have two main solutions:




  • Extract part of the subtree into a new widget, typically StatelessWidget. And then use it's BuildContext from the build method


  • Use Builder widget, which is basically a reusable widget made to obtain a BuildContext:



Example:



 @override
Widget build(BuildContext context) {
return Builder(
builder: (context) {
// do something with this new context
},
);
}





share|improve this answer
























  • Hi Rémi Rousselet, thank you so much for your quick response!!!

    – psyanite
    Nov 22 '18 at 10:28














3












3








3







To get a new BuildContext, you have two main solutions:




  • Extract part of the subtree into a new widget, typically StatelessWidget. And then use it's BuildContext from the build method


  • Use Builder widget, which is basically a reusable widget made to obtain a BuildContext:



Example:



 @override
Widget build(BuildContext context) {
return Builder(
builder: (context) {
// do something with this new context
},
);
}





share|improve this answer













To get a new BuildContext, you have two main solutions:




  • Extract part of the subtree into a new widget, typically StatelessWidget. And then use it's BuildContext from the build method


  • Use Builder widget, which is basically a reusable widget made to obtain a BuildContext:



Example:



 @override
Widget build(BuildContext context) {
return Builder(
builder: (context) {
// do something with this new context
},
);
}






share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 22 '18 at 10:20









Rémi RousseletRémi Rousselet

31.9k373101




31.9k373101













  • Hi Rémi Rousselet, thank you so much for your quick response!!!

    – psyanite
    Nov 22 '18 at 10:28



















  • Hi Rémi Rousselet, thank you so much for your quick response!!!

    – psyanite
    Nov 22 '18 at 10:28

















Hi Rémi Rousselet, thank you so much for your quick response!!!

– psyanite
Nov 22 '18 at 10:28





Hi Rémi Rousselet, thank you so much for your quick response!!!

– psyanite
Nov 22 '18 at 10:28













1














You have to use a Bloc pattern that uses an Inherited Widget, but still you'll have to pass context, but in a more straight forward way. I recommend using this app by Stephen Grider, to figure out how the whole thing works. He explains in his tutorial how to put the whole thing together but I can't link you to that because that would be advertising.



The idea is, you first create a file Bloc.dart that is going to contain your logic, then you create what is called a Provider, in a Provider.dart.



Provider.dart:



class Provider extends InheritedWidget {
final bloc = Bloc();

Provider({Key key, Widget child}) : super(key: key, child: child);

bool updateShouldNotify(_) => true;

static Bloc of(BuildContext context) {
return (context.inheritFromWidgetOfExactType(Provider) as Provider).bloc;
}
}


In your file that contains the Material App, you wrap the material App with the provider:



Widget build(BuildContext context) {
return Provider(
child: MaterialApp(


And then you use the provider in every other class down the three of widgets.



class HomeScreen extends StatelessWidget {


@override
Widget build(BuildContext context) {
final bloc = Provider.of(context); // this is where you insert the provider
return StoreConnector<AppState, List<MyStore.Store>>(
converter: (Store<AppState> store) => store.state.home.stores,
builder: (BuildContext context, List<MyStore.Store> stores) =>
CustomScrollView(slivers: <Widget>[_gridSliver(stores, context)]));
}

Widget _gridSliver(stores) {
final bloc = Provider.of(context);
return SliverGrid(
delegate: SliverChildListDelegate(List<Widget>.from(stores.map(_storeCard, context))));
}

Widget _storeCard(MyStore.Store store) {
final bloc = Provider.of(context);
return InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (_) => StoreScreen(storeId: store.id)),
);
},
child: Container(child: Text(store.name))
);


}
}


I'm a total noob with flutter and take everything with grain of salt, but this is what I would use. Hope it helps.






share|improve this answer
























  • I like this solution. Is this the same thing as using the BLoC architecture (like MVC)? Otherwise I don't see it used anywhere else. I do wish I could do something like this, but this solution is workaround not suggested by the framework. I'd rather write ugly code than to have some magcial workaround that I might forget later.

    – psyanite
    Nov 23 '18 at 21:25
















1














You have to use a Bloc pattern that uses an Inherited Widget, but still you'll have to pass context, but in a more straight forward way. I recommend using this app by Stephen Grider, to figure out how the whole thing works. He explains in his tutorial how to put the whole thing together but I can't link you to that because that would be advertising.



The idea is, you first create a file Bloc.dart that is going to contain your logic, then you create what is called a Provider, in a Provider.dart.



Provider.dart:



class Provider extends InheritedWidget {
final bloc = Bloc();

Provider({Key key, Widget child}) : super(key: key, child: child);

bool updateShouldNotify(_) => true;

static Bloc of(BuildContext context) {
return (context.inheritFromWidgetOfExactType(Provider) as Provider).bloc;
}
}


In your file that contains the Material App, you wrap the material App with the provider:



Widget build(BuildContext context) {
return Provider(
child: MaterialApp(


And then you use the provider in every other class down the three of widgets.



class HomeScreen extends StatelessWidget {


@override
Widget build(BuildContext context) {
final bloc = Provider.of(context); // this is where you insert the provider
return StoreConnector<AppState, List<MyStore.Store>>(
converter: (Store<AppState> store) => store.state.home.stores,
builder: (BuildContext context, List<MyStore.Store> stores) =>
CustomScrollView(slivers: <Widget>[_gridSliver(stores, context)]));
}

Widget _gridSliver(stores) {
final bloc = Provider.of(context);
return SliverGrid(
delegate: SliverChildListDelegate(List<Widget>.from(stores.map(_storeCard, context))));
}

Widget _storeCard(MyStore.Store store) {
final bloc = Provider.of(context);
return InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (_) => StoreScreen(storeId: store.id)),
);
},
child: Container(child: Text(store.name))
);


}
}


I'm a total noob with flutter and take everything with grain of salt, but this is what I would use. Hope it helps.






share|improve this answer
























  • I like this solution. Is this the same thing as using the BLoC architecture (like MVC)? Otherwise I don't see it used anywhere else. I do wish I could do something like this, but this solution is workaround not suggested by the framework. I'd rather write ugly code than to have some magcial workaround that I might forget later.

    – psyanite
    Nov 23 '18 at 21:25














1












1








1







You have to use a Bloc pattern that uses an Inherited Widget, but still you'll have to pass context, but in a more straight forward way. I recommend using this app by Stephen Grider, to figure out how the whole thing works. He explains in his tutorial how to put the whole thing together but I can't link you to that because that would be advertising.



The idea is, you first create a file Bloc.dart that is going to contain your logic, then you create what is called a Provider, in a Provider.dart.



Provider.dart:



class Provider extends InheritedWidget {
final bloc = Bloc();

Provider({Key key, Widget child}) : super(key: key, child: child);

bool updateShouldNotify(_) => true;

static Bloc of(BuildContext context) {
return (context.inheritFromWidgetOfExactType(Provider) as Provider).bloc;
}
}


In your file that contains the Material App, you wrap the material App with the provider:



Widget build(BuildContext context) {
return Provider(
child: MaterialApp(


And then you use the provider in every other class down the three of widgets.



class HomeScreen extends StatelessWidget {


@override
Widget build(BuildContext context) {
final bloc = Provider.of(context); // this is where you insert the provider
return StoreConnector<AppState, List<MyStore.Store>>(
converter: (Store<AppState> store) => store.state.home.stores,
builder: (BuildContext context, List<MyStore.Store> stores) =>
CustomScrollView(slivers: <Widget>[_gridSliver(stores, context)]));
}

Widget _gridSliver(stores) {
final bloc = Provider.of(context);
return SliverGrid(
delegate: SliverChildListDelegate(List<Widget>.from(stores.map(_storeCard, context))));
}

Widget _storeCard(MyStore.Store store) {
final bloc = Provider.of(context);
return InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (_) => StoreScreen(storeId: store.id)),
);
},
child: Container(child: Text(store.name))
);


}
}


I'm a total noob with flutter and take everything with grain of salt, but this is what I would use. Hope it helps.






share|improve this answer













You have to use a Bloc pattern that uses an Inherited Widget, but still you'll have to pass context, but in a more straight forward way. I recommend using this app by Stephen Grider, to figure out how the whole thing works. He explains in his tutorial how to put the whole thing together but I can't link you to that because that would be advertising.



The idea is, you first create a file Bloc.dart that is going to contain your logic, then you create what is called a Provider, in a Provider.dart.



Provider.dart:



class Provider extends InheritedWidget {
final bloc = Bloc();

Provider({Key key, Widget child}) : super(key: key, child: child);

bool updateShouldNotify(_) => true;

static Bloc of(BuildContext context) {
return (context.inheritFromWidgetOfExactType(Provider) as Provider).bloc;
}
}


In your file that contains the Material App, you wrap the material App with the provider:



Widget build(BuildContext context) {
return Provider(
child: MaterialApp(


And then you use the provider in every other class down the three of widgets.



class HomeScreen extends StatelessWidget {


@override
Widget build(BuildContext context) {
final bloc = Provider.of(context); // this is where you insert the provider
return StoreConnector<AppState, List<MyStore.Store>>(
converter: (Store<AppState> store) => store.state.home.stores,
builder: (BuildContext context, List<MyStore.Store> stores) =>
CustomScrollView(slivers: <Widget>[_gridSliver(stores, context)]));
}

Widget _gridSliver(stores) {
final bloc = Provider.of(context);
return SliverGrid(
delegate: SliverChildListDelegate(List<Widget>.from(stores.map(_storeCard, context))));
}

Widget _storeCard(MyStore.Store store) {
final bloc = Provider.of(context);
return InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (_) => StoreScreen(storeId: store.id)),
);
},
child: Container(child: Text(store.name))
);


}
}


I'm a total noob with flutter and take everything with grain of salt, but this is what I would use. Hope it helps.







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 22 '18 at 10:52









Allex RaduAllex Radu

617




617













  • I like this solution. Is this the same thing as using the BLoC architecture (like MVC)? Otherwise I don't see it used anywhere else. I do wish I could do something like this, but this solution is workaround not suggested by the framework. I'd rather write ugly code than to have some magcial workaround that I might forget later.

    – psyanite
    Nov 23 '18 at 21:25



















  • I like this solution. Is this the same thing as using the BLoC architecture (like MVC)? Otherwise I don't see it used anywhere else. I do wish I could do something like this, but this solution is workaround not suggested by the framework. I'd rather write ugly code than to have some magcial workaround that I might forget later.

    – psyanite
    Nov 23 '18 at 21:25

















I like this solution. Is this the same thing as using the BLoC architecture (like MVC)? Otherwise I don't see it used anywhere else. I do wish I could do something like this, but this solution is workaround not suggested by the framework. I'd rather write ugly code than to have some magcial workaround that I might forget later.

– psyanite
Nov 23 '18 at 21:25





I like this solution. Is this the same thing as using the BLoC architecture (like MVC)? Otherwise I don't see it used anywhere else. I do wish I could do something like this, but this solution is workaround not suggested by the framework. I'd rather write ugly code than to have some magcial workaround that I might forget later.

– psyanite
Nov 23 '18 at 21:25


















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53428475%2fhow-to-prevent-passing-down-buildcontext%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

MongoDB - Not Authorized To Execute Command

in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith

Npm cannot find a required file even through it is in the searched directory