This repository was archived by the owner on Apr 3, 2024. It is now read-only.
- Notifications
You must be signed in to change notification settings - Fork24
This repository was archived by the owner on Apr 3, 2024. It is now read-only.
Non-memoized / ref'd reducer runs into double dispatch issue when used in custom hook #18
Open
Description
Hello! First off, love this library so much, it's made my code so much more clean.
Simplified reproduction:https://codesandbox.io/s/red-https-bxpo0?file=/src/App.tsx
But anyways, I've run into this scenario recently and was able to resolve by resolving this locally - but, to be honest, I'm not really sure of the React internals enough to PR this + test. Anyways, the scenario
- I want to use
useEffectReducerin my own hook and export out it's dispatch so that other components can programmatically send out events to the reducer. - However, when I leverage the dispatch it emits events twice.
- To resolve, you can
useMemothewrappedReducer.
const memoReducer = useMemo(() => wrappedReducer, []);const [[state, effectStateEntityTuples, entitiesToStop], dispatch] = useReducer( memoReducer, initialStateAndEffects );Metadata
Metadata
Assignees
Labels
No labels