-
Notifications
You must be signed in to change notification settings - Fork 211
Open
Description
In many examples (including the TODO architecture sample), ViewModels are created like so:
class ViewModel {
final void Function() myFunction;
final String myProperty;
ViewModel({
required this.myFunction,
required this.myProperty,
});
factory ViewModel.fromStore(Store<AppState> store) {
return ViewModel(
myFunction: () => store.dispatch(const MyFunctionAction()),
myProperty: store.state.myProperty,
);
}
}This (IMO) has the following problems
myFunctionmay be accidentally used in a==orhashCodeimplementation, which would be incorrect as the closure would be non-identical with every newViewModel- More RAM usage (maybe?)
Why is that the recommended approach, compared to something like this?
class ViewModel {
final Store<AppState> _store;
ViewModel(this._store) : myProperty = _store.state.myProperty;
final String myProperty;
void myFunction() => _store.dispatch(const MyFunctionAction());
}Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels