From b96b61dc4dc9df51532c04b91c53ccdfc84519a8 Mon Sep 17 00:00:00 2001 From: Eli White Date: Wed, 20 Feb 2019 11:09:31 -0800 Subject: [PATCH] Use the canonical nativeTag for Fabric's setNativeProps (#14900) * Use the canonical nativeTag for Fabric's setNativeProps * Fix prettier --- packages/react-native-renderer/src/ReactNativeComponent.js | 4 +++- .../src/__tests__/ReactFabric-test.internal.js | 5 +++++ .../src/__tests__/ReactNativeMount-test.internal.js | 5 +++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/react-native-renderer/src/ReactNativeComponent.js b/packages/react-native-renderer/src/ReactNativeComponent.js index 5afdbf0404313..f03e8f7ddf7f7 100644 --- a/packages/react-native-renderer/src/ReactNativeComponent.js +++ b/packages/react-native-renderer/src/ReactNativeComponent.js @@ -153,6 +153,8 @@ export default function( return; } + const nativeTag = + maybeInstance._nativeTag || maybeInstance.canonical._nativeTag; const viewConfig: ReactNativeBaseComponentViewConfig<> = maybeInstance.viewConfig || maybeInstance.canonical.viewConfig; @@ -163,7 +165,7 @@ export default function( // view invalidation for certain components (eg RCTTextInput) on iOS. if (updatePayload != null) { UIManager.updateView( - maybeInstance._nativeTag, + nativeTag, viewConfig.uiViewClassName, updatePayload, ); diff --git a/packages/react-native-renderer/src/__tests__/ReactFabric-test.internal.js b/packages/react-native-renderer/src/__tests__/ReactFabric-test.internal.js index 536bb128e0f65..e363a9fed5580 100644 --- a/packages/react-native-renderer/src/__tests__/ReactFabric-test.internal.js +++ b/packages/react-native-renderer/src/__tests__/ReactFabric-test.internal.js @@ -189,6 +189,11 @@ describe('ReactFabric', () => { viewRef.setNativeProps({foo: 'baz'}); expect(UIManager.updateView).toHaveBeenCalledTimes(1); + expect(UIManager.updateView).toHaveBeenCalledWith( + expect.any(Number), + 'RCTView', + {foo: 'baz'}, + ); }); }); diff --git a/packages/react-native-renderer/src/__tests__/ReactNativeMount-test.internal.js b/packages/react-native-renderer/src/__tests__/ReactNativeMount-test.internal.js index 3921aa1eb6759..42c999f77f501 100644 --- a/packages/react-native-renderer/src/__tests__/ReactNativeMount-test.internal.js +++ b/packages/react-native-renderer/src/__tests__/ReactNativeMount-test.internal.js @@ -120,6 +120,11 @@ describe('ReactNative', () => { viewRef.setNativeProps({foo: 'baz'}); expect(UIManager.updateView).toHaveBeenCalledTimes(1); + expect(UIManager.updateView).toHaveBeenCalledWith( + expect.any(Number), + 'RCTView', + {foo: 'baz'}, + ); }); });