
react native中无法将readablearray放入map的解决方法
在react native中,使用readablearray向android传递参数时,如果直接将其放入writablemap中会产生“null illegal type provided”错误。这是因为writablemap仅支持存放特定类型的对象,而readablearray不在其中。
要解决此问题,可以将readablearray转换为writablearray,然后将其放入writablemap中。以下是一些可用的转换方法:
通用的转换方法:
private static writablemap convertmap(readablemap map) {
writablemap temp = arguments.createmap();
temp.merge(map);
return temp;
}
private static writablearray convertarray(readablearray array) {
writablearray temp = arguments.createarray();
for (int i = 0; i < array.size(); i++) {
readabletype type = array.gettype(i);
switch (type) {
case null:
temp.pushnull();
break;
case boolean:
temp.pushboolean(array.getboolean(i));
break;
case number:
temp.pushdouble(array.getdouble(i));
break;
case string:
temp.pushstring(array.getstring(i));
break;
case array:
temp.pusharray(convertarray(array.getarray(i)));
break;
case map:
temp.pushmap(convertmap(array.getmap(i)));
break;
default:
throw new exception("illegal type provided");
}
}
return temp;
}写入步骤:
将readablearray转换为writablearray后,可以使用以下方法将其放入writablemap中:
map.putArray("key", convertArray(params));通过这些步骤,即可将readablearray安全地放入writablemap中,从而解决错误。










