REDUX CONNECT-模块AppRegistry不是注册的可可模块



我在启动新项目并实现Redux和React-Navigation后收到此错误Module AppRegistry is not a registered callable module

调试器逐步介绍我的代码的初始化,但我看不到抛出更描述性错误的位置。我唯一看到的是在调试时确实没有称为runApplication的方法。由于react-redux

import React from 'react'
import { Provider } from 'react-redux';
import configureStore from './store';
import AppReducer from './reducers';
import { persistStore } from 'redux-persist'
import AppWithNavigationState from './navigator'
export default class App extends React.Component {
    store = configureStore(AppReducer);
    constructor(props) {
        super(props);
        persistStore(this.store).purge();
    }
    render() {
        return <Provider store={this.store}>
            <AppWithNavigationState />
        </Provider>
    }
}

就我的理解而言,无需注册我的应用程序类,也无需使用AppRegistry手动注册组件。我感觉到我的代码应该怪,因为这曾经以前工作,但是stacktrace并没有指向任何东西。

当然,当添加AppRegistery.registerComponent时,它可以工作!但这没有向我解释为什么以前没有必要。

我的AppNavigator类:

import React from 'react'
import {
    BackHandler,
} from 'react-native'
import {
    addNavigationHelpers,
    StackNavigator,
} from 'react-navigation'
import { connect } from 'react-redux'
import Start from './components/start'
import Login from './components/login'
import AppCamera from './components/camera'
export const AppNavigator = StackNavigator({
    Start: {
        screen: Start,
        navigationOptions: {
            title: 'App',
        },
    },
    Login: {
        screen: Login,
        navigationOptions: {
            title: 'Login',
        }
    },
    Camera: {
        screen: AppCamera,
        navigationOptions: {
            title: 'Camera',
        }
    }
}, {
    mode: 'modal',
    headerMode: 'none',
});
// const AppWithNavigationState = ({ dispatch, nav }) => (
//     <AppNavigator navigation={addNavigationHelpers({ dispatch, state: nav })} />
// );
export class AppWithNavigationState extends React.Component {
    constructor(props) {
        super(props);
    }
    componentWillMount() {
        BackHandler.addEventListener('hardwareBackPress', function() {
            const { dispatch, navigation, nav } = this.props;
            if (nav.routes.length === 1 && (nav.routes[0].routeName === 'Login' || nav.routes[0].routeName === 'Start')) {
                return false;
            }
            // if (shouldCloseApp(nav)) return false
            dispatch({ type: 'Navigation/BACK' });
            return true;
        }.bind(this));
    }
    componentWillUnmount() {
        BackHandler.removeEventListener('hardwareBackPress');
    }
    render() {
        return <AppNavigator navigation={addNavigationHelpers({ dispatch: this.props.dispatch, state: this.props.nav })} />
    }
}
AppWithNavigationState.propTypes = {
    dispatch: React.PropTypes.func.isRequired,
    nav: React.PropTypes.object.isRequired,
    auth: React.PropTypes.object.isRequired,
};
const mapStateToProps = state => ({
    nav: state.nav,
    auth: state.auth,
});
export default connect(mapStateToProps)(AppWithNavigationState);

只需杀死所有节点进程并启动NPM服务器并运行应用程序:

step1:运行命令killall -9节点

step2:运行命令npm start

step3:运行命令反应式run-ios或反应式run-android