Skip to content

Commit

Permalink
Fix Switch causing RetryableMountingLayerException (#32602)
Browse files Browse the repository at this point in the history
Summary:
Added a null check to native.value in Switch to fix regression from RN 66 -> stuck operation in mViewCommandOperations list in Android Release on initial layout of a screen with Switch component. If approved, please incorporate this fix into an RN 66 release.

## Changelog
[Android][Fixed] - Added a null check to native.value in Switch to fix #32594

Pull Request resolved: #32602

Test Plan: To reproduce, put a log in UIViewOperationQueue in dispatchViewUpdates you can see that the RetryableMountingException is no longer thrown for a screen with the Switch component on Android Release. As a result, mViewCommandOperations no longer has a stuck operation on initial layout.

Reviewed By: charlesbdudley

Differential Revision: D34397788

Pulled By: lunaleaps

fbshipit-source-id: 1cee3516fb987942dfa50ad1f2d11c965a947f05
  • Loading branch information
jonathanmos authored and Andrei Shikov committed Mar 16, 2022
1 parent 762db49 commit 63e4bd6
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion Libraries/Components/Switch/Switch.js
Expand Up @@ -170,7 +170,8 @@ const SwitchWithForwardedRef: React.AbstractComponent<
// that the update should be ignored and we should stick with the value
// that we have in JS.
const jsValue = value === true;
const shouldUpdateNativeSwitch = native.value !== jsValue;
const shouldUpdateNativeSwitch =
native.value != null && native.value !== jsValue;
if (
shouldUpdateNativeSwitch &&
nativeSwitchRef.current?.setNativeProps != null
Expand Down

0 comments on commit 63e4bd6

Please sign in to comment.