首页 > 解决方案 > 不再支持如何解决 UIManager['AIRMapLite']。(带有白色徽标的白色屏幕)

问题描述

在过去的 2 天里,我无法解决这个问题。我已经完成了mapview的搜索和阅读文档,但仍然无法解决。

错误

我将向您展示我的代码和我所做的场景。

我的进口

import MapView from 'react-native-maps';

我的功能

    export default class App extends Component {
  render() {
    return (
      <View style={styles.container}>
        <MapView
          zoomEnabled = {true}
          style={ styles.map }
          initialRegion={{
            latitude: 37.78825,
            longitude: -122.4324,
            latitudeDelta: 0.0922,
            longitudeDelta: 0.0421,
          }}
        />
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  map: {
    position: 'absolute',
    top: 0,
    left: 0,
    right: 0,
    bottom: 0,
    ...StyleSheet.absoluteFillObject,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});

最后是google的激活码

<meta-data 
        android:name="com.google.android.geo.API_KEY"
        android:value="i make it secret first"
      />

启用

这是我控制台中的错误,我不知道问题是否发生

    if (__DEV__) {
  Object.keys(UIManager).forEach(viewManagerName => {
    if (!UIManagerProperties.includes(viewManagerName)) {
      if (!viewManagerConfigs[viewManagerName]) {
        viewManagerConfigs[viewManagerName] = UIManager[viewManagerName];
      }
      defineLazyObjectProperty(UIManager, viewManagerName, {
        get: () => {
          console.warn(
            `Accessing view manager configs directly off UIManager via UIManager['${viewManagerName}'] ` +
              `is no longer supported. Use UIManager.getViewManagerConfig('${viewManagerName}') instead.`,
          );
          return UIManager.getViewManagerConfig(viewManagerName);
        },
      });
    }
  });
}

标签: react-nativeandroid-mapview

解决方案


这是目前的一个已知问题react-native-maps。最初于 2018 年 12 月创建了一个问题。

这实际上是依赖项如何实现的问题。因此,除了分叉回购并自己解决潜在问题之外,您实际上无能为力。

截至 2019 年 3 月 11 日,该问题现已修复,不再是问题。该修复程序已包含在下一个版本中。因此,一旦下一个版本发布,react-native-maps您应该不再遇到警告。

https://github.com/react-native-community/react-native-maps/issues/2620#issuecomment-471650689

固定在master上,应该包含在下一个版本中

如果您不能等待问题得到解决并且想要隐藏YellowBox警告,您可以使用以下方法来完成

import {YellowBox} from 'react-native';

然后在您的渲染方法中,我通常在 中执行此操作,App.js因此很容易跟踪我隐藏了哪些。

render() {
  YellowBox.ignoreWarnings(['Warning: ...']);  // <- insert the warning text here you wish to hide. 
  return (
    //cool ui stuff
  );
}

它不会从您的控制台中删除警告,但会删除与错误相关的任何 YellowBox 警告。


推荐阅读