use-enhanced-reducer
Version:
[](https://www.npmjs.com/package/use-enhanced-reducer) [](https://www.npmjs.com/package/use-en
42 lines (28 loc) • 1.31 kB
Markdown
# use-enhanced-reducer
[](https://www.npmjs.com/package/use-enhanced-reducer)
[](https://www.npmjs.com/package/use-enhanced-reducer)
[](https://bundlephobia.com/result?p=use-enhanced-reducer@latest)
Simple custom hook for use React.useReducer with middlewares.
# Examples
### With logger middleware
```ts
import * as React from 'react';
import { useEnhancedReducer, loggerMiddleware } from 'use-enhanced-reducer';
const SomeComponent: React.FunctionComponent<{}> = () => {
// see logs of actions in console
const [state, dispatch] = useEnhancedReducer(reducer, initialState, [loggerMiddleware])
// do something
}
```
### With your custom middleware
```ts
import * as React from 'react';
import { useEnhancedReducer, TReducerMiddleware } from 'use-enhanced-reducer';
const customMiddleware: TReducerMiddleware = state => dispatch => action => {
// do something
};
const SomeComponent: React.FunctionComponent<{}> = () => {
const [state, dispatch] = useEnhancedReducer(reducer, initialState, [customMiddleware])
// do something
}
```