2

我有一个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端查看的最佳方法是什么?

4

1 回答 1

1

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

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

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

最后确保从这个列表中导出任何类型的object (NSDictionary)字符串。因此,您需要将对象转换为 JSON 对象并从中删除嵌套函数以避免兼容性问题。employeeList

于 2018-12-15T00:10:56.037 回答