Я использую flutter_redux всего несколько дней, и мне интересно, в чем разница между:
class BtnCustom extends StatelessWidget {
@override
Widget build(BuildContext context) {
final store = StoreProvider.of<AppState>(context);
return FlatButton(
onPressed: store.dispatch(MyCustomAction),
child: Text(store.state.MyCustomTxt),
);
}
}
и
class BtnCustom extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StoreConnector<AppState, _ViewModel>(
converter: (store) => _ViewModel(
txt: store.state.MyCustomTxt,
onPressed: store.dispatch(MyCustomAction)),
builder: (BuildContext context, _ViewModel vm) {
return FlatButton(
onPressed: vm.onPressed,
child: Text(vm.txt),
);
},
);
}
}
class _ViewModel {
final String txt;
final void Function() onPressed;
_ViewModel({this.txt, this.onPressed});
}
?
Первый кажется очень удобным в использовании. Должны ли они быть знакомы с преимуществами или недостатками использования одного над другим?
Согласно документации, StoreConnector перестроит в нем виджет так:
- Это нормально? не использовать StoreConnector, если вам не нужно перестраивать виджет?
- Можно ли иметь несколько виджетов в StoreConnector?