Reduce lifecycle hooks and use of private methods#3
Open
Conversation
Member
Author
|
Relies on cssinjs/react-jss#281 |
HenriBeck
reviewed
Jul 18, 2018
| // This will never be called during hot module replacement, so we can use it as a place to | ||
| // store away the SheetManager | ||
| super.componentWillMount() | ||
| managers.set(Object.getPrototypeOf(this), this.manager) |
Member
There was a problem hiding this comment.
Can't this also be in the constructor? Or is the constructor when on HMR?
Member
Author
There was a problem hiding this comment.
No because the this in the constructor is not the proxy.
However I had a read of Redux’ connectAdvanced() that you referred to before and if I use their idea - a counter (version) - as the key then I could move this into the constructor.
I was thinking there wasn’t much reason to switch to the version idea because we need to track the SheetsManager anyway, but moving this code to the constructor might be a good enough reason. What do you think?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The
componentDidUpdate()lifecycle method was only needed to work around aTypeError: Cannot read property 'detach' of undefinedbeing thrown when a dynamic sheet is added via HMR.This PR removes
componentDidUpdate()and does all its work incomponentWillReceiveProps()instead, so it won’t be able to be merged untilreact-jssstops attempting to detach the nonexistent previous dynamic sheet.I also removed the call to
createState()and instead restore the state that was created in the constructor. One fewer private method being called and it fixes the actual problem more directly.