(RN77-NA) Bug(iOS): React Native Reload is not working #8021 #8033
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 fix's logic is what @gosha212 came up with and is a solid idea.
First of all,
the problem:
During the Reload, some of the surfaces were still being destroyed at a stage that the EventEmitter had already changed to a different instance.
This caused the crash because the previous EventEmitter instance's _callableJSModules object no longer existed (nil) and caused an Assert to throw an exception.
The fix:
After spending a lot of time going through the code and getting to know the code we came a couple of times close the a solution but not something that would be clean or right enough, UNTIL... @gosha212 came up with an idea to generalize the fetching of the right EventEmitter object only at the time it was actually needed.