【问题标题】:How to solved UIManager['AIRMapLite'] is no longer supported. (White Screen with white Logo)不再支持如何解决 UIManager['AIRMapLite']。 (带有白色徽标的白色屏幕)
【发布时间】:2019-03-12 09:25:29
【问题描述】:

过去 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);
        },
      });
    }
  });
}

【问题讨论】:

  • 分享 UIManager.js 的第 163 行
  • 看到更新兄弟

标签: react-native android-mapview


【解决方案1】:

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

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

自 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 警告。

【讨论】:

  • 你可以使用它。这只是一个警告。一旦新版本发布,更新,警告就会消失。你应该没有任何问题。
  • 最后一件事我应该把 YellowBox 忽略在哪里?
  • 我通常把它作为我渲染App.js的第一件事
  • 您需要将正确的文本放入数组中。我想你需要输入的文字应该是'Accessing view manager configs directly off UIManager view UiManager[AirMapLite] is no longer supported.'
  • 错误显示。我已经导入 YellowBox 并在 import YellowBox.ignoreWarnings(['Accessing view manager configs directly off UIManager view UiManager[AirMapLite] is no longer support.']);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-18
  • 2020-08-24
  • 1970-01-01
  • 1970-01-01
  • 2017-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多