Suggestion, Hook: Avoid rerender if useReducer's dispatch is called before the hook #15
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.



Current behaviour
When rendering a component, if I call the
dispatch(setState) function ofuseReducerbefore I actually calluseReducer, it will trigger the component to be rerendered.This behaviour is demonstrated here, the custom hook's code is copied bellow.
Suggested behaviour
In the current implementation, dispatched actions (and mostly the ones triggered during the render phase) are handled inside
useReducer. If thedispatchfunction is called beforeuseReducer, we don't have to wait to rerender to handle this action.This new behaviour is demonstrated in the current Pull Request.
I'm not expecting a negative effect because hooks are currently meant to be called always in same order and not conditionally.
Motivation
I came to this change trying to implement a custom hook
useDerivedState: