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