Как преобразовать react js array [] в NSArray в iOS и string [] в Android?

#reactjs #react-native #react-router

#reactjs #react-native #react-маршрутизатор

Вопрос:

Я работаю новичком над кроссплатформенным проектом с использованием react-native и хотел бы знать, как мне преобразовать javascript-массив string в Java array (строка[]) и iOS NSArray.

Например, мой JS-компонент имеет

 constructor(props) {
    super(props);
    this.state = {
      isLoading: false,
      devices: [],
      selectedDevices:[]
    };
  }
  

Мой собственный модуль Android ожидает следующее —

 public void disableDevices(String[] deviceNames){
...

}
  

Кто-нибудь может помочь?

Комментарии:

1. Почему вы должны преобразовать его array [] в NSArray в iOS и string [] в Android?

2. Мне нужно передать этот результат в собственные модули.

Ответ №1:

Это пример вызова собственного метода с передачей массива. Надеюсь, это поможет вам.

Android

 @ReactMethod
public void yourMethod(ReadableArray yourArray, final Promise promise) {

}
  

iOS

 // YourModule.h
 (void) yourMethod:(NSArray *)yourArray resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject;

// YourModule.m
  (void) yourMethod:(NSArray *)yourArray
                         resolver:(RCTPromiseResolveBlock)resolve
                         rejecter:(RCTPromiseRejectBlock)reject
{

}
  

JS

 import { NativeModules } from 'react-native';
const { YourModule } = NativeModules;
...

YourModule.yourMethod([1, 2, 3]);
  

Вы можете прочитать больше о NativeModules здесь