Skip to content

Commit 8b1f6e0

Browse files
gabrieldonadelfacebook-github-bot
authored andcommitted
Fix TouchableOpacity componentDidUpdate causing an excessive number of pending callbacks (#35387)
Summary: The commit 3eddc9a included on v0.69 introduced a wrong `if` statement inside the `componentDidUpdate` function of the `TouchableOpacity` component. As this `if` statement always evaluates to `true` (`(true || false) !== undefined`) we end up making unnecessary calls to the `_opacityInactive` method every time the component props changes, e.g. every time a `<Text>` inside the TouchableOpacity changes we call this function over and over, and this has been causing some performance issues on big lists. This PR fixes this problem by adjusting the `componentDidUpdate` function to only call `_opacityInactive` when necessary. Closes #34442 Closes #32476 ## Changelog [General] [Fixed] - Fix TouchableOpacity componentDidUpdate causing an excessive number of pending callbacks Pull Request resolved: #35387 Test Plan: 1. Open the RNTester app and navigate to the `Touchable* and onPress` page 2. Test the `TouchableOpacity` component through the many sections Reviewed By: cipolleschi Differential Revision: D41397396 Pulled By: ryancat fbshipit-source-id: 24863b5cbbdd2f3dd1f654b43d7031560937b888
1 parent ad0c855 commit 8b1f6e0

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

Libraries/Components/Touchable/TouchableOpacity.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -301,9 +301,8 @@ class TouchableOpacity extends React.Component<Props, State> {
301301
this.state.pressability.configure(this._createPressabilityConfig());
302302
if (
303303
this.props.disabled !== prevProps.disabled ||
304-
(flattenStyle(prevProps.style)?.opacity !==
305-
flattenStyle(this.props.style)?.opacity) !==
306-
undefined
304+
flattenStyle(prevProps.style)?.opacity !==
305+
flattenStyle(this.props.style)?.opacity
307306
) {
308307
this._opacityInactive(250);
309308
}

0 commit comments

Comments
 (0)