【问题标题】:Passing iOS objects to React Native将 iOS 对象传递给 React Native
【发布时间】:2019-05-15 05:16:00
【问题描述】:

我有一个对象employeeList,其中包含对象employee,然后每个员工对象都有一个person对象和address对象,person and address都包含NSString属性和一些函数例如calculateAge()

我想将这个 employeeList 对象从本机端传递到反应本机端,但它出现为空,这是因为它 RN 桥只会发送特权数据类型。

https://facebook.github.io/react-native/docs/native-modules-ios#argument-types

将employeeList 转换为JSON 对象或嵌套映射以便在RN 端查看的最佳方法是什么?

【问题讨论】:

  • 在这里查看所有答案:stackoverflow.com/questions/10548429/… 可能会对您有所帮助。基本上使用图书馆来做。
  • 我认为你需要将你的人和地址对象转换为字典,并将它们解析回JS端。
  • @Andrew - 感谢 cmets,有什么快速的方法吗? (除了使用库,我看到 RCTConvert 做相反的事情)

标签: ios objective-c react-native react-native-native-module


【解决方案1】:

不能通过网桥objects 发送嵌套函数作为相同object 的属性。但是您可以发送在Objective-CSwift 的自建模块中声明的本机函数/方法

我建议您在本机模块中导出函数calculateAge()。此函数接收 JSON 对象 employee 作为参数,使用 回调或发出事件返回此员工的期望年龄 尽管我会为此使用带有 Promises 的构造。当你想要在 JS 端时,也可以调用这个函数。然而,在原生模块上编写这种函数是没有意义的,因为您可以在 JS 端执行相同的逻辑。

如果逻辑需要仅在本机端运行的额外数据,则在本机模块中导出函数会很有用。

最后确保导出一个object (NSDictionary),其中包含来自this list 的任意类型的字符串keysvalues。所以你需要将employeeList对象转换为JSON对象,并从中删除嵌套函数以避免兼容性问题。

【讨论】:

    猜你喜欢
    • 2021-03-17
    • 2019-06-25
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    • 2019-01-18
    • 2019-02-18
    相关资源
    最近更新 更多