Передача свойств из собственного в React Native при использовании Wix React Native Navigation (RNN) - PullRequest
1 голос
/ 01 июня 2019

Передача свойств из native в React Native описана здесь .Вот сводка:

NSArray *imageList = @[@"http://foo.com/bar1.png",
                       @"http://foo.com/bar2.png"];

NSDictionary *props = @{@"images" : imageList};

RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                 moduleName:@"ImageBrowserApp"
                                          initialProperties:props];

Однако при использовании Wix React Native Navigation , нет rootView.Согласно документации, вот как выглядит минимальная настройка RNN на iOS:

 #import "AppDelegate.h"

 #import <React/RCTBundleURLProvider.h>
 #import <React/RCTRootView.h>
 #import <ReactNativeNavigation/ReactNativeNavigation.h>

 @implementation AppDelegate

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 {
     NSURL *jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
     [ReactNativeNavigation bootstrap:jsCodeLocation launchOptions:launchOptions];

     return YES;
 }

 @end

Как мы можем передавать реквизиты из нативного?

Ответы [ 2 ]

1 голос
/ 02 июня 2019

Для этого вам нужно создать собственный модуль .Модуль предоставляет открытые методы, которые возвращают результаты путем разрешения обещания .

0 голосов
/ 01 июня 2019

Когда я передаю свойство из React Native в родную iOS, вам нужно проверить, не передана ли родная iOS в свойство React Native. Вот мой код

В iOS

Appdelegate.h

#import <UIKit/UIKit.h>
#import "React/RCTBridgeModule.h"

@import Firebase;
@interface AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeModule>

@property (strong, nonatomic) UIWindow *window;


@end

Appdelegate.m

#import "RCTBundleURLProvider.h"
#import <React/RCTLog.h>

@implementation AppDelegate

RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(addEvent:(NSString *)propertyName)
{
    //Here you get your property value
    var property = propertyName;
    RCTLogInfo(@"Pretending to create an event %@ at %@", areaId);
}

In React Native

MyComponent.js

import { NativeModules } from 'react-native';

var AppDelegate = NativeModules.AppDelegate;
AppDelegate.addEvent(value);
...