Как преобразовать массив js [] в NSArray в iOS и строку [] в Android?

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

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

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

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

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

}

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

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

Asif vora 04.04.2019 13:48

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

Krupal Ghorpade 04.04.2019 13:52
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
2
2
1 170
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Андроид

@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 здесь

Другие вопросы по теме