#4165·tamagui

react-native-portal breaks app after install & setup

Author: ettmetalCreated Aug 13, 2026Updated Aug 13, 2026

Current Behavior

Following instructions from https://tamagui.dev/ui/portal to install react-native-portal as recommended, the app builds and reports an error:

  • iOS: "Unimplemented component: " with a red screen overlay. The app continues to work underneath the overlay, though no portal-using components funciton
  • android: "Can't find ViewManager 'PortalView' nor 'RCTPortalView' in ViewManagerRegistry, existing names are...[truncated]" as a dismissible error - dismissing shows the expo default screen

N.B: removing tamagui's setup import restores functionality, but does not allow portalled components access to contexts.

Expected Behavior

Portal-using components continue to work, and now have access to context values.

Tamagui Version

markdown
2.7.6

Platform (Web, iOS, Android)

markdown
iOS, Android

Reproduction

markdown
In an existing tamagui / expo project:

`$ npx expo install --check`
`$ npx tamagui check`
`$ npm i react-native-portal`
Place `import '@tamagui/native/setup-teleport';` as first import in root of app
`$ npx expo prebuild --clean`
`$ npx expo start`

System Info

markdown
System:
    OS: macOS 15.7.7
    CPU: (14) arm64 Apple M4 Pro
    Memory: 217.13 MB / 48.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 25.2.0 - /Users/[redacted]/.local/share/mise/installs/node/latest/bin/node
    npm: 11.19.0 - /Users/[redacted]/.local/share/mise/installs/node/latest/bin/npm
    Watchman: 2026.06.29.00 - /opt/homebrew/bin/watchman
  Browsers:
    Firefox: 153.0.3
    Safari: 26.5.2
  npmPackages:
    @babel/core: ^7.25.2 => 7.29.7 
    @expo/vector-icons: ^15.0.2 => 15.1.1 
    @react-navigation/bottom-tabs: ^7.3.10 => 7.18.16 
    @react-navigation/elements: ^2.3.8 => 2.9.38 
    @react-navigation/native: ^7.1.6 => 7.3.16 
    @tamagui/babel-plugin: ^2.0.0 => 2.7.6 
    @tamagui/cli: ^2.7.6 => 2.7.6 
    @tamagui/config: ^2.0.0 => 2.7.6 
    @tamagui/lucide-icons-2: ^2.0.0 => 2.7.6 
    @tamagui/metro-plugin: ^2.0.0 => 2.7.6 
    @tamagui/portal: ^2.0.0 => 2.7.6 
    @types/lodash: ^4.17.24 => 4.17.25 
    @types/react: ~19.2.4 => 19.2.18 
    eslint: ^9.39.5 => 9.39.5 
    eslint-config-expo: ~57.0.1 => 57.0.1 
    eslint-plugin-react-hooks: ^7.1.1 => 7.1.1 
    expo: ^57.0.10 => 57.0.12 
    expo-blur: ~57.0.2 => 57.0.2 
    expo-constants: ~57.0.9 => 57.0.10 
    expo-font: ~57.0.1 => 57.0.1 
    expo-haptics: ~57.0.1 => 57.0.1 
    expo-image: ~57.0.2 => 57.0.2 
    expo-linking: ~57.0.5 => 57.0.5 
    expo-router: ~57.0.10 => 57.0.12 
    expo-splash-screen: ~57.0.5 => 57.0.6 
    expo-status-bar: ~57.0.1 => 57.0.1 
    expo-symbols: ~57.0.1 => 57.0.2 
    expo-system-ui: ~57.0.2 => 57.0.2 
    expo-web-browser: ~57.0.2 => 57.0.2 
    globals: ^17.9.0 => 17.11.0 
    lodash: ^4.17.21 => 4.18.1 
    prettier: ~3.6.2 => 3.6.2 
    react: 19.2.3 => 19.2.3 
    react-dom: 19.2.3 => 19.2.3 
    react-native: ~0.86.2 => 0.86.2 
    react-native-gesture-handler: ~2.32.0 => 2.32.0 
    react-native-reanimated: 4.5.1 => 4.5.1 
    react-native-safe-area-context: ~5.7.0 => 5.7.0 
    react-native-screens: ~4.26.0 => 4.26.2 
    react-native-svg: 15.15.4 => 15.15.4 
    react-native-teleport: ^1.1.12 => 1.1.12 
    react-native-web: ^0.21.2 => 0.21.2 
    react-native-webview: 13.16.1 => 13.16.1 
    react-native-worklets: 0.10.1 => 0.10.1 
    tamagui: ^2.0.0 => 2.7.6 
    type-fest: ^4.41.0 => 4.41.0 
    typedash: ^3.2.5 => 3.3.3 
    typescript: ~6.0.3 => 6.0.3 
    typescript-eslint: ^8.66.0 => 8.67.0