mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Fix disappearing redbox on initial load of an invalid bundle. (#50867)
Summary: Right now having a javascript error like an invalid import statement during first bundle load results in a disappearing redbox screen. https://github.com/user-attachments/assets/ab9c64f5-6e32-481c-a58f-6d37bb920acb The `invalidate` call removed in this PR cleans up all turbomodules, including the RedBox module, which in turns calls `dismiss` in `RCTRedBox`. After removing this line the result is as following: https://github.com/user-attachments/assets/6eeb4d43-f883-440f-ade3-5628f85f833a I made sure that the `invalidate` function is still called when executing only two possible ways to reload the bundle: - the Reload button - Cmd+R The HMR/hot reload is not connected if the bundle has an error on initial load, so we don't need to worry about it. Longer term, it would be better to establish HMR and use a different redbox in this case:  Doing this requires larger changes to the bundle loading flow – happy to to try and land that change if there's any guidance you could give. ## Changelog: <!-- Help reviewers and the release process by writing your own changelog entry. Pick one each for the category and type tags: [ANDROID|GENERAL|IOS|INTERNAL] [BREAKING|ADDED|CHANGED|DEPRECATED|REMOVED|FIXED|SECURITY] - Message For more details, see: https://reactnative.dev/contributing/changelogs-in-pull-requests --> [IOS][FIXED] – Fix disappearing redbox on initial load of an invalid bundle. Pull Request resolved: https://github.com/facebook/react-native/pull/50867 Test Plan: I have tested this change using RN from main and RNTester app (see videos). Reviewed By: cortinico Differential Revision: D73511154 Pulled By: cipolleschi fbshipit-source-id: dfe149ebc15d845f07fd3926db2e063b468870af
This commit is contained in:
committed by
Facebook GitHub Bot
parent
3e14d1638c
commit
4cc9db1cd5
-1
@@ -507,7 +507,6 @@ void RCTInstanceSetRuntimeDiagnosticFlags(NSString *flags)
|
||||
|
||||
if (error) {
|
||||
[strongSelf handleBundleLoadingError:error];
|
||||
[strongSelf invalidate];
|
||||
return;
|
||||
}
|
||||
// DevSettings module is needed by _loadScriptFromSource's callback so prior initialization is required
|
||||
|
||||
Reference in New Issue
Block a user