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
Hello,
I'm having an issue where icons don't appear in iOS when I open the menu.
I've been having this problem ever since I upgraded to Expo SDK 55 with the new architecture.
Can anyone help me? Here's the code
I investigated this on Expo SDK 55 + New Architecture and found the likely root cause.
The issue is in the iOS New Arch bridge path of @react-native-menu/menu:
imageColor is treated as an optional prop in JS, but in generated native structs it becomes an int with default 0.
In ios/NewArch/MenuView.mm, imageColor is always forwarded (@"imageColor": @(action.imageColor)), even when you didn’t set it.
In ios/Shared/RCTMenuItem.swift, this check always passes: if let imageColor = details["imageColor"] { ... }
so the icon gets tinted with that value.
When that value is the default 0, the tint can make the icon effectively invisible.
That’s why icons disappear after upgrading to SDK 55 / New Arch.
Workaround that works reliably:
Set imageColor for every action that has image (e.g. theme text color), for example: { id: "share", title: "Share", image: "square.and.arrow.up", imageColor: isDark ? "#FFFFFF" : "#111111" }
(Alternative local patch: ignore imageColor when it is 0, similar to what was discussed in #1034.)
Activity
seferdemirci commentedon May 7, 2026
I investigated this on Expo SDK 55 + New Architecture and found the likely root cause.
The issue is in the iOS New Arch bridge path of
@react-native-menu/menu:imageColoris treated as an optional prop in JS, but in generated native structs it becomes anintwith default0.ios/NewArch/MenuView.mm,imageColoris always forwarded (@"imageColor": @(action.imageColor)), even when you didn’t set it.ios/Shared/RCTMenuItem.swift, this check always passes:if let imageColor = details["imageColor"] { ... }so the icon gets tinted with that value.
0, the tint can make the icon effectively invisible.That’s why icons disappear after upgrading to SDK 55 / New Arch.
Workaround that works reliably:
Set
imageColorfor every action that hasimage(e.g. theme text color), for example:{ id: "share", title: "Share", image: "square.and.arrow.up", imageColor: isDark ? "#FFFFFF" : "#111111" }(Alternative local patch: ignore
imageColorwhen it is0, similar to what was discussed in #1034.)mbrandenburg88 commentedon May 8, 2026
Thx for helping
app: cwd picker UI + sheet chrome polish + InputBar menu library swap