当前位置: 首页 > 知识库问答 >
问题:

javascript - React Native中传给android的ReadableArray如何放入Map中?

樊熠彤
2023-08-03

我想用

//params是React Native通过函数传递给android中的函数的参数ReadableArrayWritableMap map = Arguments.createMap()map.putArray("key", params);

但是这样总是报错null illegal type provided
有什么解决方法吗?

共有1个答案

东龙野
2023-08-03

WritableMap 只支持存放:

  • null
  • Boolean
  • Number
  • String
  • WritableArray
  • WritableMap

这几种类型。

所以你需要把 ReadableArray 先转成 WritableArray,才能放入 WritableMap 中。


先自己定义一个转换方法(以下是一种比较通用的转换方法,如果你只想针对某个特定的 ReadableArray,你也可以自己实现):

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;}

然后再写入:

map.putArray("key", convertArray(params));
 类似资料:
  • 问题内容: 我已经尝试过(但无法正常工作): 问题答案: 尝试这个: 当您遇到此类问题时,一个好主意是检查浏览器是否存在JavaScript错误。不同的浏览器有不同的显示方式,但是需要一个javascript控制台或类似的东西。另外,检查浏览器查看的页面源。 有时,初学者对字符串中的引号感到困惑:在PHP部分中,您分配给。这将字符串值放入该变量内,但该值中没有引号:它们仅用于解释器,因此他知道:

  • 问题内容: 我想将JavaScript变量添加到php echo中 谢谢 问题答案: 你不能 PHP在服务器上运行,并输出一些文本。 文本发送到浏览器 浏览器将文本解释为HTML / JavaScript / etc 在执行JavaScript时,PHP已完成运行。 如果要传回数据,则需要发出 新的 HTTP请求并从头开​​始运行PHP脚本。

  • 问题内容: 谁能告诉我如何在JSP中将JavaScript值传递给Scriptlet? 问题答案: 您的javascript值是客户端,您的scriptlet正在服务器端运行。因此,如果您想在scriptlet中使用javascript变量,则需要提交它们。 为此,可以将它们存储在输入字段中并提交表单,或者执行ajax请求。我建议您对此进行研究。

  • wordpress后台有一堆文章, 现在需要在页面中获取到文章标题, 作为请求参数去请求其他接口 在网上查了一下, 获取文章标题需要用到php的 the_title 方法, 而现在请求接口则是用 $.ajax()方法 那么有没有什么办法能把文章标题传给js? 或者直接使用js获取文章标题?

  • 问题内容: 如何在ReactNative中水平和垂直居中放置文本? 我在rnplay.org中有一个示例应用程序,其中 justifyContent =“ center” 和 alignItems =“ center” 不起作用:https : **//rnplay.org/apps/AoxNKQ** 文本应居中。为什么在文本(黄色)和父容器之间的顶部留有空白? 码: 问题答案: 从‘样式删除,和

  • 第一个数字:3第二个数字:4和:7