Skip to content

Expo SDK55 no icon shown on Menu #1198

Closed

Description

@mbrandenburg88

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

const actions: MenuAction[] = useMemo( () => [ { id: 'tire-info', title: t('Tire information'), image: 'plus',/*'ic_information_outline_grey600_36dp',*/ state: 'mixed' }, { id: 'photo', title: t('Photo'), image: 'ic_photo_camera_outline_grey600_36dp' }, { id: 'character-recognition', title: t('Character recognition'), image: 'ic_camera_enhance_outline_grey600_36dp', }, { id: 'visual-inspections', title: t('Visual inspections'), image: 'ic_alert_outline_grey600_36dp', }, { id: 'tread-depth', title: t('Tread depth'), image: 'ic_tire_grey600_36dp', }, ], [t], )

For testing i use "image: 'plus'". But no icon shown.

Can you help me?

Activity

  1. seferdemirci commented on May 7, 2026

    @seferdemirci

    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.)

  2. mbrandenburg88 commented on May 8, 2026

    @mbrandenburg88
    Author

    Thx for helping

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions