海印网
海印网

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

admin数码00

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

以上就是React Native中ReadableArray无法放入Map?如何解决“null illegal type provided”错误?的详细内容,更多请关注其它相关文章!

Tags: 放入将其

Sorry, comments are temporarily closed!