Correctly bypass sync calls in UIManager during remote debugging (#25162)
Summary: Remote debugging stopped working (since 0.58, according to #23254). See https://github.com/facebook/react-native/issues/23254#issuecomment-474692753 for repro steps. The root cause is incorrect checks for Chrome debugging environment in `UIManager.js`. - In one place where sync function `lazilyLoadView` should be avoided, we effectively use `if (__DEV__ && !global.nativeCallSyncHook)` to check remote debugging, which misses ship flavor (i.e. `__DEV__` is false). - In another place where we want to pre-populate view managers' constants to avoid calling sync function `getConstantsForViewManager`, `if (__DEV__)` is used, also missing ship flavor. This PR fixes both checks, only using the absense of `global.nativeCallSyncHook` to determine remote debugging environments. ## Changelog [JavaScript] [Fixed] - Correctly bypass sync calls in UIManager during remote debugging Pull Request resolved: https://github.com/facebook/react-native/pull/25162 Differential Revision: D15692492 Pulled By: cpojer fbshipit-source-id: 173b688f140916b767fcdbbaaf68a5c303adbcd1
This commit is contained in:
Родитель
831f5fe210
Коммит
417e191a1c
|
@ -78,10 +78,8 @@ const UIManagerJS: UIManagerJSInterface = {
|
|||
|
||||
// If we're in the Chrome Debugger, let's not even try calling the sync
|
||||
// method.
|
||||
if (__DEV__) {
|
||||
if (!global.nativeCallSyncHook) {
|
||||
return config;
|
||||
}
|
||||
if (!global.nativeCallSyncHook) {
|
||||
return config;
|
||||
}
|
||||
|
||||
if (
|
||||
|
@ -182,7 +180,7 @@ if (Platform.OS === 'ios') {
|
|||
}
|
||||
}
|
||||
|
||||
if (__DEV__) {
|
||||
if (!global.nativeCallSyncHook) {
|
||||
Object.keys(getConstants()).forEach(viewManagerName => {
|
||||
if (!UIManagerProperties.includes(viewManagerName)) {
|
||||
if (!viewManagerConfigs[viewManagerName]) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче