fix: unpersisted event is handed off into a promise resolution callback#216
Open
jstarpl wants to merge 1 commit intofirefox-devtools:masterfrom
Open
fix: unpersisted event is handed off into a promise resolution callback#216jstarpl wants to merge 1 commit intofirefox-devtools:masterfrom
jstarpl wants to merge 1 commit intofirefox-devtools:masterfrom
Conversation
✅ Deploy Preview for firefox-devtools-react-contextmenu ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
|
Is this a fix for React 16 ? |
|
Can you also please share some "steps to reproduce" that would be fixed with your patch? |
julienw
reviewed
Jun 24, 2024
Comment on lines
+129
to
134
| // it's promise, the event needs to be persisted, so that React | ||
| // doesn't reuse the event object while the data function resolves | ||
| event.persist(); | ||
| data.then((resp) => { | ||
| showMenuConfig.data = assign({}, resp, { | ||
| target: event.target |
There was a problem hiding this comment.
Alternatively:
Suggested change
| // it's promise, the event needs to be persisted, so that React | |
| // doesn't reuse the event object while the data function resolves | |
| event.persist(); | |
| data.then((resp) => { | |
| showMenuConfig.data = assign({}, resp, { | |
| target: event.target | |
| // It's a promise. | |
| // In React 16, event objects can be reused, therefore it's not safe | |
| // to use it directly. Let's keep a reference to the target in a local variable. | |
| const { target } = event; | |
| data.then((resp) => { | |
| showMenuConfig.data = assign({}, resp, { | |
| target |
|
I've left an alternative solution, but I don't mind using yours if you prefer. |
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 event needs to be persisted before using
event.targetas that event object can be reused by React by the time the promise resolves.