redux_hooks
A Redux Hooks for flutter project.
Why this library
I was working on one of my project on flutter And I saw that there is requirement to use useSelector
and useDispatch
function in my project because I was using redux as state container then I started searching library for it on pub.dev and I found a library flutter_redux_hooks so, I added in my project pubspec.yaml
after this when I ran my project I get a error that my project is dependent on redux 5.0.0. so, i went on repository and saw that this library has no update from last 18 month. so I decided that I will fork this repo and I will provide update to it and will publish with different name but after cloning this repo. I was unable to run this project in editor, after spending more than 4hr I decided that I will write my own library for it and now I am here :smile: .
issues
please report any issue on bug reports
add dependency
redux_hooks: ^1.0.1
Getting Started
1) initialize redux hooks in main
function
Future<void> main() async {
final store = Store<ApplicationState>(counterReducer,
initialState: ApplicationState.initialState());
// redux hooks init
await ReduxHooks.setStore(store);
runApp(MyApp(
store: store,
));
}
2) dispatch any action
class Home extends StatelessWidget {
const Home({Key? key}) : super(key: key);
static const routeName = '/home';
@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: FloatingActionButton(
onPressed: () {
// dispaching action with useDispatch function
ReduxHooks.useDispatch(CounterActions.increment);
},
child: const Icon(Icons.add),
),
);
}
}
3) Listen state with StateProvider
widget
class Home extends StatelessWidget {
const Home({Key? key}) : super(key: key);
static const routeName = '/home';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Redux hooks Plugin example app'),
),
body: Center(
// listenning changes with stateProvider widget
child: StateProvider(
provideState: ReduxHooks.useSelector,
child: ((state) {
return Text("${state.counter}");
}))),
);
}
}
Example
for full example please visit: - https://github.com/Adityapanther/redux-hooks/tree/main/example
Upcoming Features
- web support
Contributions
I am welcoming contributor and contribution in this library