Avoid duplicated style declarations for detectElementResize #507
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.
Issue
When using multiple instances of AutoSizer (or mounting and unmounting multiple times) a new style tag is being added to the document head. This is due to
detectElementResize
vendor library that forces creation every time it's called.Approaches
Solution 1
Move
stylesCreated
variable outside of function scope. This way this variable would be set just once independently of how many times function is called.Solution 2
Identify style tag with an
id
attribute so we don't duplicate it if it already exists.Solution 3
Extract style declaration to RV
styles.css
file.Current approach
I've opted for using an id as it ensures style tag is created even if it has been previously removed somehow.
Screenshot
Here you can see it in action: