我遵循了react-native-maps文档上的指南:我得到了错误。
我在stackoverflow和google上到处都是,但找不到解决方法。
我尝试了所有可以在论坛上找到的答案,但仍然出现错误。
错误:
不变行为:requireNativeComponent:在UIManager中找不到“ AIRMap”。
我的代码:
import React from 'react';
import MapView from 'react-native-maps';
import { StyleSheet } from 'react-native';
export default class App extends React.Component {
constructor() {
super();
this.state = {};
}
render() {
return (
<MapView
style = {styles.map}
showsUserLocation = {false}
followUserLocation = {false}
zoomEnabled = {true}
/>
)
}
}
const styles = StyleSheet.create ({
map: {
height: 400,
marginTop: 80
}
})
答案 0 :(得分:0)
尝试一下:
打开xcode项目>您的项目>构建阶段>链接二进制文件>删除libAirMaps.a> 然后再次添加>检查它是否有效... check image for detailed instruction
编辑: 如果您已经安装了react-native-maps,请尝试手动添加AirMapsLib。按照此图像上的说明进行操作。之后,重试以上说明。
答案 1 :(得分:0)
请检查这两个链接,为您提供有关在iOS和Android中对本机地图集成进行反应的详细信息
Map integration link 1 for Android & ios
有时候iOS库无法正确链接,因此您需要手动将库添加到Xcode中。
答案 2 :(得分:0)
在iOS上,但在Android上,我还没有遇到这个问题。
Invariant Violation: requireNativeComponent:xxx not found in UIManager
问题似乎是依赖关系,因此未与您的项目链接,因此针对此问题提供了两种解决方案(取决于您的“依赖关系”)
react-native link
。 手动将依赖性添加到MainApplication.java中,如下所示:
@Override
protected List<ReactPackage> getPackages() {
@SuppressWarnings("UnnecessaryLocalVariable")
List<ReactPackage> packages = new PackageList(this).getPackages();
// Packages that cannot be autolinked yet can be added manually here, for
packages.add(new RNFirebaseAnalyticsPackage());
packages.add(new xxxPackage());
}
可能有
答案 3 :(得分:0)
我只运行了react-native run-android就解决了这个问题。
注意:如果您已运行react-native链接,请先取消链接。
答案 4 :(得分:0)
将以下几行添加到 MainApplication.java
import com.airbnb.android.react.maps.MapsPackage;
@Override
protected List<ReactPackage> getPackages() {
@SuppressWarnings("UnnecessaryLocalVariable")
List<ReactPackage> packages = new PackageList(this).getPackages();
packages.add(new MapsPackage());
return packages;