Move the side effects out of shouldComponentUpdate() #225
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.
This attempts to completely remove any internal side effects from
shouldComponentUpdate()
because is not in line with how React tells us to treat it and may not even be called in certain cases, e.g. during hot reloading.I didn't touch any tests, and that they pass is a good sign because it means we didn't regress over #99 which is where those side effects were moved to
shouldComponentUpdate()
. Here, instead, I moved them torender()
, and applied a different optimization (namely, returning a constant element) to achieve the same effect asshouldComponentUpdate()
did while always callingmapStateToProps
andmapDispatchToProps
with up-to-date props.I confirm this PR fixes #224. It should not regress on performance.
@epeli Would you like to review?