Skip to content

Rendering RCTRootView in a hybrid app setup causes the whole app to reload #31615

@mohsinulhaq

Description

@mohsinulhaq

Description

I have a React Native app, that renders some native UIViewControllers written in Swift using the brilliant tutorial here.

From those controllers, I want to navigate to some React-based screens, which I'm achieving with the help of the RCTRootView tutorial here. But whenever I try to navigate to the screen, either using present or pushViewController, it causes the RN bundle to reload which causes the whole app to reload. I understand that this tutorial was meant for apps not written in React Native, but I'm hoping that there's a workaround to achieve the same within a React Native app as well.

React Native version:

System:
    OS: macOS 11.4
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
    Memory: 371.94 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 12.22.1 - /usr/local/opt/node@12/bin/node
    Yarn: 1.22.10 - /usr/local/bin/yarn
    npm: 6.14.12 - /usr/local/opt/node@12/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.10.1 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: iOS 14.5, DriverKit 20.4, macOS 11.3, tvOS 14.5, watchOS 7.4
    Android SDK: Not Found
  IDEs:
    Android Studio: 4.1 AI-201.8743.12.41.7199119
    Xcode: 12.5/12E262 - /usr/bin/xcodebuild
  Languages:
    Java: 11.0.11 - /usr/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: 17.0.2 => 17.0.2 
    react-native: 0.64.1 => 0.64.1 
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

Steps To Reproduce

Provide a detailed list of steps that reproduce the issue.

  1. Render a Native UIViewController in a RN app.
  2. Create an interaction in that controller navigate to a React Native view using RCTRootView.
  3. The whole app reloads due to metro bundler reload.

Expected Results

The React Native view renders properly.

Screenshot

Screen.Recording.2021-05-27.at.5.36.01.PM.mov

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs: Triage 🔍StaleThere has been a lack of activity on this issue and it may be closed soon.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions