[SOLVED]Componenet Hello 在Android上直接报Element type is invalid



  • 小弟初学React Native,在Windows上开发,Node.js版本5.1,react-native版本0.16.0-rc。Github代码很简单,但是真的不知道哪里错,删掉<Hello />就不报错了。

    var Hello = require('./components/Hello');
    
    var rn_app = React.createClass({
      render: function() {
        return (
          <View style={styles.container}>
            <Hello />
          </View>
        );
      }
    });
    

    0_1448803156596_react_native.png



  • 在ReactNative 0.16,babel升级到了6.x版本。 babel 6有一个重大的改变:

    在babel5中,如果一个模块只有export default而没有任何export,那么可以用require拿到export default的引用。

    在babel6中,require和export default不能直接配对使用。

    所以,你需要要么把

    var Hello = require('./components/Hello');
    

    改为

    import Hello from './components'
    

    要么把

    export default React.createClass({
    

    改为

    module.exports = React.createClass({
    

    二者选其一,配对使用。