我在反应原生的iOS应用程序中使用Google Place Picker。
使用react-native本机模块指南,我已导出要在Javascript中使用的Place Picker的本机模块。
但是当我调用placePickerWithCallback
方法没有任何反应时,没有显示UI,甚至没有抛出错误。
RCT_EXPORT_METHOD(pickPlace:(RCTResponseSenderBlock)callback)
{
GMSPlacePickerConfig *config = [[GMSPlacePickerConfig alloc] initWithViewport:nil];
GMSPlacePicker *_placePicker = [[GMSPlacePicker alloc] initWithConfig:config];
[_placePicker pickPlaceWithCallback:^(GMSPlace *place, NSError *error) {
if (error != nil) {
NSLog(@"Pick Place error %@", [error localizedDescription]);
return;
}
if (place != nil) {
callback(@[[self placeToJson:place]]);
}
}];
}
我检查了我的API密钥与sdk示例一起工作,并启用了所有Google API。
甚至Place Picker SDK中的另一种方法 - currentPlaceWithCallback
也能正常工作并返回结果。
是否有一些额外的方法我应该通过react-native调用UI来调用UI?
答案 0 :(得分:0)
我不太了解react-native,但这里的问题可能是地方选择器对象是本地范围的。来自the place picker docs:
在场所拣选操作期间,必须保留对场所拣货员的参考。如果地方选择器对象的保留计数变为0,则取消操作将被取消,并且不会调用回调。
尝试将_placePicker
变量作为类的成员变量,或以其他方式保存对它的引用,直到操作完成。再一次,不知道如何在React中做到这一点。