我写这是为了回答我自己的问题,因为文档没有明确说明这一点,并且在堆栈溢出或其他任何地方都找不到它。这是将String数组从Java模块返回到React Native Component的方法(从我的个人项目中的代码简化)。
CPPConnection.java文件
public class CPPConnection extends ReactContextBaseJavaModule {
@ReactMethod
public void GetDerivedUnits(String scheme,final Promise promise){
try {
List<String> returnSet = new ArrayList<String>();
//Set first value so that there is a lead value
returnSet.add("");
returnSet.add(scheme);
returnSet.add("lb");
returnSet.add("kg");
String[] returnArray = new String[returnSet.size()];
returnArray = returnSet.toArray(returnArray);
WritableArray promiseArray=Arguments.createArray();
for(int i=0;i<returnArray.length;i++){
promiseArray.pushString(returnArray[i]);
}
promise.resolve(promiseArray);
}
catch(Exception e){
promise.reject(e);
}
}
}
Density.js文件
export default class Density extends Component{
...
constructor(props) {
super(props);
this.state = {
mass: '',
massUnits:[],
volume: '',
volumeUnits:[],
density: 'N/A',
};
this.GetDerivedUnits("M",this.state.massUnits);
this.GetDerivedUnits("L3",this.state.volumeUnits);
}
GetDerivedUnits= async (scheme,unitArray)=>{
try{
let asyncUnitSet = await CPPConnection.GetDerivedUnits(scheme);
for (let i=0;i<asyncUnitSet.length;i++){
unitArray.push(asyncUnitSet[i])
this.setState({
unitArray: unitArray
})
}
console.log(asyncUnitSet);
}catch(e){
console.error(e);
}
}
...
}
参考方案
我写这是为了回答我自己的问题,因为文档没有明确说明这一点,并且在堆栈溢出或其他任何地方都找不到它。这是将String数组从Java模块返回到React Native Component的方法(从我的个人项目中的代码简化)。
CPPConnection.java文件
public class CPPConnection extends ReactContextBaseJavaModule {
@ReactMethod
public void GetDerivedUnits(String scheme,final Promise promise){
try {
List<String> returnSet = new ArrayList<String>();
//Set first value so that there is a lead value
returnSet.add("");
returnSet.add(scheme);
returnSet.add("lb");
returnSet.add("kg");
String[] returnArray = new String[returnSet.size()];
returnArray = returnSet.toArray(returnArray);
WritableArray promiseArray=Arguments.createArray();
for(int i=0;i<returnArray.length;i++){
promiseArray.pushString(returnArray[i]);
}
promise.resolve(promiseArray);
}
catch(Exception e){
promise.reject(e);
}
}
}
Density.js文件
export default class Density extends Component{
...
constructor(props) {
super(props);
this.state = {
mass: '',
massUnits:[],
volume: '',
volumeUnits:[],
density: 'N/A',
};
this.GetDerivedUnits("M",this.state.massUnits);
this.GetDerivedUnits("L3",this.state.volumeUnits);
}
GetDerivedUnits= async (scheme,unitArray)=>{
try{
let asyncUnitSet = await CPPConnection.GetDerivedUnits(scheme);
for (let i=0;i<asyncUnitSet.length;i++){
unitArray.push(asyncUnitSet[i])
this.setState({
unitArray: unitArray
})
}
console.log(asyncUnitSet);
}catch(e){
console.error(e);
}
}
...
}
Java-搜索字符串数组中的字符串 - java在Java中,我们是否有任何方法可以发现特定字符串是字符串数组的一部分。我可以避免出现一个循环。例如String [] array = {"AA","BB","CC" }; string x = "BB" 我想要一个if (some condition to tell wheth…
Java Scanner读取文件的奇怪行为 - java因此,在使用Scanner类从文件读取内容时,我遇到了一个有趣的问题。基本上,我试图从目录中读取解析应用程序生成的多个输出文件,以计算一些准确性指标。基本上,我的代码只是遍历目录中的每个文件,并使用扫描仪将其打开以处理内容。无论出于何种原因,扫描程序都不会读取其中的一些文件(所有UTF-8编码)。即使文件不是空的,scanner.hasNextLine()在…
Java:正则表达式模式匹配器是否有大小限制? - java我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)
Java:线程池如何将线程映射到可运行对象 - java试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …
Java Globbing模式以匹配目录和文件 - java我正在使用递归函数遍历根目录下的文件。我只想提取*.txt文件,但不想排除目录。现在,我的代码如下所示:val stream = Files.newDirectoryStream(head, "*.txt") 但是这样做将不会匹配任何目录,并且返回的iterator()是False。我使用的是Mac,所以我不想包含的噪音文件是.DS_ST…