You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
iOS: a recycled EaseView loses overflow: 'hidden' and borderRadius #72
On iOS (new architecture), an EaseView that is unmounted and later mounted again can lose its overflow: 'hidden' and borderRadius. The reused view no longer clips its children and has square corners. In our app this showed up after some navigation as a background image spilling out of rounded buttons and switches.
Cause: prepareForRecycle resets layer properties that RCTViewComponentView owns (masksToBounds, cornerRadius, backgroundColor, borders, shadow, opacity and transform). RCTViewComponentView keeps _props across recycling and only applies a style value again when it changes. So when the recycled view is mounted with the same style, overflow: 'hidden' and borderRadius look unchanged to React Native and are never set on the layer again.
Expected: the remounted view clips its children with rounded corners, like the first mount.
Steps to reproduce
Render an EaseView with overflow: 'hidden' and borderRadius, and a child larger than it (for example a 300x300 view inside a 160x64 pill).
Unmount it.
Mount it again with the same props.
The child is no longer clipped and the corners are square.
Thanks, @el-lsan. The cause matches the code: RCTViewComponentView keeps _props across recycling and only re-applies a style value when it changes, so EaseView.prepareForRecycle resetting masksToBounds/cornerRadius leaves a same-style remount unclipped. Your PR (#73) is under review; I left one comment there about anchorPoint.
Activity
floco-af commentedon Nov 8, 2026
Thanks, @el-lsan. The cause matches the code:
RCTViewComponentViewkeeps_propsacross recycling and only re-applies a style value when it changes, soEaseView.prepareForRecycleresettingmasksToBounds/cornerRadiusleaves a same-style remount unclipped. Your PR (#73) is under review; I left one comment there aboutanchorPoint.fix(ios): always reset anchorPoint on recycle