reactjs - 如何将React js array[]转换为iOS中的NSArray和Android中的string[]?

标签 reactjs react-native react-router

我是一个使用react-native的跨平台项目的新手,想知道如何将javascript字符串数组转换为Java数组(String[])和iOS NSArray。

例如, 我的 JS 组件有

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

我的 Android native 模块预期如下 -

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

}

有人可以帮忙吗?

最佳答案

这是一个通过传递数组来调用 native 方法的示例。希望这会对您有所帮助。

安卓

@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的更多信息here

关于reactjs - 如何将React js array[]转换为iOS中的NSArray和Android中的string[]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55514888/

相关文章:

reactjs - 升级 expo 项目后出现输入错误

react-native - 从...开始?对于零 :NilClass undefined method expo-cli@2. 9.0/src/commands/upload/utils.js

javascript - 使用 Switch 语句在 React 中预期的表达式

javascript - 在 React-Redux 项目中收到服务器对 auth 的响应 200 后重定向到页面

reactjs - 使用spring Rest和axios上传文件,未找到多部分边界

javascript - ReactJS 和 typescript : Creating a private route using router dom

javascript - Electron 位置。路径名在初始加载时不正确

ios - 使用 ADB 在设备上运行 React Native (iOS)

javascript - 未捕获的类型错误 : Cannot read property 'push' of undefined (React-Router-Dom)

javascript - 使用 React Hooks 跟踪 URL 更改