Open alexruzenhack opened 3 months ago
:warning: | Unsupported Version of React Native |
---|---|
:information_source: | It looks like your issue or the example you provided uses an unsupported version of React Native. Due to the number of issues we receive, we're currently only accepting new issues against one of the supported versions. Please upgrade to latest and verify if the issue persists (alternatively, create a new project and repro the issue in it). If you cannot upgrade, please open your issue on StackOverflow to get further community support. |
:warning: | Unsupported Version of React Native |
---|---|
:information_source: | It looks like your issue or the example you provided uses an unsupported version of React Native. Due to the number of issues we receive, we're currently only accepting new issues against one of the supported versions. Please upgrade to latest and verify if the issue persists (alternatively, create a new project and repro the issue in it). If you cannot upgrade, please open your issue on StackOverflow to get further community support. |
@alexruzenhack Here the problem is with marginVertical
. It is not able to override marginTop
and marginBottom
.
Even marginHorizontal wasn't able to override marginLeft
and marginRight
.
I am looking into this.
@alexruzenhack For a simple workaround, you can replace marginVertical:0
with {marginTop:0, marginBottom:0}
for now.
Seems to be very old issue: https://github.com/facebook/react-native/issues/14587. Not fixed yet
@cortinico Since similiar issue is raised earlier as well. Are we tracking it anywhere or have any plan for this?
I debugged this and found that Yoga applies individual margins (marginLeft, marginRight)
before aggregate margins (marginHorizontal, marginVertical)
. Aggregate margins only set the edges that are not already specified by individual margins.
Also this is not only limited to margins even paddingHorizontal
and paddingVertical
behaves similarly.
@cortinico Since similiar issue is raised earlier as well. Are we tracking it anywhere or have any plan for this?
Sadly everything that is not New Architecture related is having lower priority at the moment. If the issue have a valid reproducer we apply the "Issue: Author Provided Repro" which won't let them stale.
The problem with this one is that is on 0.72 and we would need the same repro but for 0.75 as 0.72 is currently unsupported
@cortinico
I tested this on main branch with rn-tester
as well. Here is the reproducer for this.
One possible solution which I think of currently is implementing flattening of styles in react native world itself. And then for aggregateStyles
like paddingHorizontal paddingVertical marginHorizontal and marginVertical
replace it with individual style at the very end.
Let me know your thoughts on this.
Thanks
One possible solution I think of currently is implementing flattening styles in the react native world itself. And then for
aggregateStyles
likepaddingHorizontal paddingVertical marginHorizontal and marginVertical
replace it with individual style at the very end. Let me know your thoughts on this. Thanks
I think it prioritises marginTop over marginVertical, @shubhamguptadream11 To apply your solution we have to apply rules like if marginTop is set and the user wants to override it by marginVertical or marginVertical declare and override by marginTop at this moment we have to apply rules for prioritise marginTop over marginVertical which is already there
Description
By flattening the styles
{ marginTop: 15 }
and{ marginVertical: 0 }
, it results in a component withmargin: 0
, however a "ghost" hidden component retains themarginTop: 15
. A complete description can be found here https://github.com/HathorNetwork/hathor-wallet-mobile/issues/532.Steps to reproduce
Use the flatten style syntax with a
flag
in a component, like:style={[{ marginTop: 15 }, flag && { marginVertical: 0 }]}
React Native Version
0.75.1 (Verified it happens on latest version)
Affected Platforms
Runtime - Android, Runtime - iOS
Output of
npx react-native info
Stacktrace or Logs
Reproducer
https://snack.expo.dev/@alexruzenhack/margin-rules-application https://github.com/dream-sports-labs/reproducer-react-native
Screenshots and Videos
The images are in this issue: https://github.com/HathorNetwork/hathor-wallet-mobile/issues/532