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中,从而解决错误。
以上就是React Native中ReadableArray无法放入Map?如何解决“null illegal type provided”错误?的详细内容,更多请关注其它相关文章!
Article Links:https://www.hinyin.com/n/258123.html
Article Source:admin
Article Copyright:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。