Hello! 欢迎来到小浪资源网!


React Native中ReadableArray无法放入Map?如何解决“null illegal type provided”错误?


React Native中ReadableArray无法放入Map?如何解决“null illegal type provided”错误?

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中,从而解决错误。

相关阅读