Java React native Android SyntaxError:试图重新定义属性';键';
在运行Java React native Android SyntaxError:试图重新定义属性';键';,java,android,adb,react-native,genymotion,Java,Android,Adb,React Native,Genymotion,在运行react native run android后,我在模拟器(测试过Genymotion和google Stock Emulator)和物理设备(三星S4)上发现以下错误: 键入的错误为: java.util.concurrent.ExceptionException:java.lang.RuntimeException:SyntaxError:试图重新定义属性“key”。(http://192.168.50.37:8081/index.android.bundle?platform
react native run android
后,我在模拟器(测试过Genymotion和google Stock Emulator)和物理设备(三星S4)上发现以下错误:
键入的错误为:
java.util.concurrent.ExceptionException:java.lang.RuntimeException:SyntaxError:试图重新定义属性“key”。(http://192.168.50.37:8081/index.android.bundle?platform=android&dev=true&hot=false:72450)
- Genymotion也发生了类似的错误(也是
),但解决方案对我没有帮助,即java.util.concurrent.ExecutionException
adb反向tcp:8081 tcp:8081
- 我还尝试将设备的开发设置/
更改为调试服务器主机和端口
,而不是0.0.0:8081
,其中MY_IP:8081
是我电脑的IPMY_IP
我正在运行react native 0.22.2,问题是:
键在某个视图中定义了两次,例如
<View key={index} key={other} ... />
因此,只需删除一个键
属性即可
let styles = StyleSheet.create({
keyword:{},
keyword:{}
});
找到解决方案的中间步骤:
首先,当按React Native菜单中的Start Chrome Debugging
时,应用程序将再次运行,但相应浏览器选项卡的控制台中将显示错误。
然后它会显示一条更好的错误消息
奇怪的是,这个错误没有出现在iOS上。我也有同样的错误,但使用了不同的关键字
在我的例子中,关键字在我的css样式中声明了两次
let styles = StyleSheet.create({
keyword:{},
keyword:{}
});
在iOS上没有崩溃或警告,但在Android上导致崩溃。在v0.49上遇到相同的错误。花了很多时间,终于发现我的css声明中有重复项:
logo: {
flex:.3,
height: 120,
marginBottom: 10,
},
logo: {
...styText,
marginTop: 10
},
刚刚删除了第二个声明,修复了错误。您使用了什么方法来查找重复的密钥?我想我在第三方库中有一个重复的密钥,我不知道如何识别哪一个。搜索一百个节点模块并不有趣。有人有什么想法吗?现在不太确定了,我想我只是浏览了bug之前使用过的组件,然后搜索了键
。但是,在>
中查找键至少两次的正则表达式在这种情况下可能会有所帮助?!虽然您的错误当然也可能有另一个原因……肯定有某种lint实用程序可以捕获这样的内容吗?我猜Android有点像react native lint。但它没有确定问题的位置。这次我在JSX组件定义中找到了重新定义的属性。我在样式表样式定义中也有它们。我错过了真正的编译器。您可以在node_modules目录ack'^.*(key\s*=){1}.*(key\s*=){1}.*$”
中使用此正则表达式,如果您有重复的样式键值对,也可能会出现这种情况。