Используйте Realm для интеграции ReactNative с существующими приложениями, и страница ReactNative не может нормально загружаться - PullRequest
0 голосов
/ 07 января 2019

* Realm JS SDK Версия: realm v2.21.1

* Узел или React Native: узел v11.5.0 & React Native v0.55.4 & npm v7.10.0

* Клиентская ОС и версия: Mac OS 10.13.6

Я использую область в своем собственном проекте реакции, и этот проект представляет собой интеграцию с существующими приложениями. Я использую область установки узла v7.10.0 и использую узел v11.5.0 для установки другого компонента. реагировать на родную страницу и обратно. Когда я снова захожу на страницу ReactNative , страница не может быть успешно загружена. Пожалуйста, помогите мне.

Это демонстрация рабочего видео here здесь

NativeCode:

- (void)createButton {
    UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(100, 100, 150, 50)];
    [btn setTitle:@"GoReactNative" forState:UIControlStateNormal];
    [btn addTarget:self action:@selector(handle:) forControlEvents:UIControlEventTouchUpInside];
    [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
    [self.view addSubview:btn];
}

- (void)handle:(UIButton *)sender {
    [self.navigationController pushViewController:[RNViewController new] animated:YES];
}

# RNViewController.m
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(back) {
    dispatch_async(dispatch_get_main_queue(), ^{
        UINavigationController *navController = (UINavigationController *)[[UIApplication sharedApplication] delegate].window.rootViewController;
        [navController popViewControllerAnimated:YES];
    });
}

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.navigationController setNavigationBarHidden:YES];
    NSURL *jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.bundle?platform=ios"];

    RCTRootView *rootView =
    [[RCTRootView alloc] initWithBundleURL: jsCodeLocation
                            moduleName: @"demo"
                     initialProperties: nil
                         launchOptions: nil];
    self.view = rootView;
}

JSCode:

export default class App extends Component {
  _back() {
    NativeModules.RNViewController.back();
  }

  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>Welcome to React Native!</Text>
        <Text style={styles.instructions}>To get started, edit App.js</Text>
        <Text style={styles.instructions}>{instructions}</Text>
        <TouchableOpacity
          activeOpacity={0.5}
          onPress={() => this._back()}><Text>BackToNative</Text>
        </TouchableOpacity>
      </View>
    );
  }
}

демо

demoWithNode_ModulesAndPods

...