在RN 0.55.4(Android)中,writeableArray.size()始终为1
在Android中,我有一个本机模块,它使用如下可写数组:在RN 0.55.4(Android)中,writeableArray.size()始终为1,android,react-native,Android,React Native,在Android中,我有一个本机模块,它使用如下可写数组: public class UploadVideoModule extends ReactContextBaseJavaModule { public WritableArray test=Arguments.createArray(); UploadCallBack uploadCallBack = new UploadCallBack() { @Override public void testArr
public class UploadVideoModule extends ReactContextBaseJavaModule {
public WritableArray test=Arguments.createArray();
UploadCallBack uploadCallBack = new UploadCallBack() {
@Override
public void testArray(int i) {
test.pushString("aa "+i);
System.out.println("================= wa test ============test:"+test+" ,size:"+test.size());
} }
@Override
public String getName() {
return REACT_MODULE_NAME;
}
public UploadVideoModule(ReactApplicationContext reactContext) {
super(reactContext);
WritableArray wa=Arguments.createArray();
wa.pushString("aaaaaaaaa");
wa.pushString("bbbbbbbbb");
wa.pushString("ccccccccc");
Log.e(TAG,"======= wa ==========="+wa);
Log.e(TAG,"======= wa ==========size:"+wa.size());
for (int i =0;i<5;i++){
uploadCallBack.testArray(i);
}
}
interface UploadCallBack {
void testArray(int i);
}
}
公共类UploadVideoModule扩展ReactContextBaseJavaModule{
public writeablearray test=Arguments.createArray();
UploadCallBack UploadCallBack=新的UploadCallBack(){
@凌驾
公共无效测试区(int i){
测试推柱(“aa”+i);
System.out.println(“===============================wa测试===========测试:“+test+”,大小:“+test.size()”;
} }
@凌驾
公共字符串getName(){
返回模块名称;
}
公共上传视频模块(ReactApplicationContext reactContext){
超级(反应上下文);
WritableArray wa=Arguments.createArray();
wa.推进管柱(“AAAAAAAA”);
wa.推进管柱(“BBBBB”);
wa.推进管柱(“CCCCCCC”);
Log.e(TAG,“====================================================”+wa);
Log.e(标记,”===============================size:“+wa.size());
对于(int i=0;i已安装)
“反应”:“16.3.2”
“react native”:“0.55.4”,//从0.51=>0.55.4
复制步骤
复制上面的代码,然后在RN 0.51和0.55.4中运行,您会发现它不同!!修复争用条件:ReadableNativeArray.setUseNativeAccessor(true);
您能详细说明这个答案吗,包括争用条件是什么以及您的解决方案修复争用条件的原因吗?