如何修正这个本地错误:“java.lang.String不能转换到com.facebook.react.uimanager”?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (189)

我使用以下代码段来创建一个新按钮,但我得到“ java.lang.String无法转换为com.facebook.react.uimanager.AccessibilityDelegateUtil $ AccessibilityRole ”错误。我做了一些挖掘,似乎是因为React Native 0.57.3导致的错误不稳定,所以我根据众多论坛帖子的建议将其降级为0.57.1​​。但错误仍然存​​在,所以如果你能查看我的代码并给我建议,我会很感激。

我的代码:

import React, {Component} from 'react';
import {StyleSheet, Text, View} from 'react-native';

import FetchLocation from './components/FetchLocation';

export default class App extends React.Component{
  getUserLocationHandler = () => {

  }
  render() {
    return (
      <View style={styles.container}>
        <FetchLocation onGetLocation={this.getUserLocationHandler} />
      </View>
    );
  }
}
const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
}); 

我的代码也是:

  import React from 'react';
    import { Button } from 'react-native';

    const fetchLocation = props => {
              return (
            <Button title="Get Location" onPress={props.onGetLocation}/>
              );
    };

    export default fetchLocation; 

这是错误的图像:

提问于
用户回答回答于

版本是0.57,而在反应原生中尝试使用Button的错误说它在0.55版本中有效。最好试一试。

编辑

我自己试了一下,发现了这个解决方案。降级反应原生为57.2,并确保降级其他依赖项,如下所示,

    "dependencies": {
    "react": "16.5.0",
    "react-native": "0.57.2"
  },
  "devDependencies": {
    "babel-jest": "23.6.0",
    "jest": "23.6.0",
    "metro-react-native-babel-preset": "0.47.1",
    "react-test-renderer": "16.5.0"
  }

然后尝试删除node_modules并执行 npm install & npm start -- --reset-cache

扫码关注云+社区

领取腾讯云代金券