S. *_*Pan 4 java android-studio react-native native-module
我写这是为了回答我自己的问题,因为文档没有明确说明这一点,并且在堆栈溢出或其他任何地方都找不到它。这是将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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
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);
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
我写这是为了回答我自己的问题,因为文档没有明确说明这一点,并且在堆栈溢出或其他任何地方都找不到它。这是将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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
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);
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1749 次 |
| 最近记录: |