2017-07-25 66 views
0

我一直在“Connect(SalesOrderList)”错误的上下文或道具中找到“找不到'商店',我提供提供商商店正如你可以在下面的App.js文件中看到的那样。不知道错误是从哪里来的。这是我第一次尝试将redux与react-native集成起来,并且遇到了困难。 =)在Connect()的上下文或道具中找不到提供商商店

我App.js

const store = createStore(reducers, window.__REDUX_DEVTOOLS_EXTENSION__ && 
window.__REDUX_DEVTOOLS_EXTENSION__(), applyMiddleware(Thunk)); 

console.log(store.getState()); 

export default class App extends Component { 
    constructor(props) { 
    super(props); 
    this.state = {}; 
    } 
    state = { loggedIn: null}; 

    renderView() { 
    switch (this.state.loggedIn) { 
     case true: 
     return <AppNavigator /> 
     case false: 
     return <Login />; 
     default: 
     return <AppNavigator />; 
    } 
    } 

    render() { 
    return (
     <Provider store={store}> 
     <View style={styles.container}> 
      {this.renderView()} 
     </View> 
     </Provider> 
    ); 
    } 
} 

Index.ios.js

import { 
     AppRegistry, 
    } from 'react-native'; 
    import App from './src/components/App'; 
    import { StackNavigator } from 'react-navigation'; 
    import SalesOrderList from './src/components/SalesOrderList'; 
    import SalesOrderItem from './src/components/SalesOrderItem'; 

    const AppNavigator = StackNavigator({ 
     SalesOrderList : { screen: SalesOrderList }, 
     SalesOrderItem : { screen: SalesOrderItem } 
    }); 

    AppRegistry.registerComponent('issicrm',() => AppNavigator); 

    export default AppNavigator; 

回答

0

因此,您在index.ios.js中注册了AppNavigator组件: AppRegistry.registerComponent('issicrm',() => AppNavigator);

如果仔细观察,您链接的组件AppNavigator只是一个StackNavigator组件,它根本没有连接到您的Redux存储区,这就是为什么您在SalesOrderList组件的连接调用中看到错误的原因。

我想你可能想在你的index.ios.js中注册你的App组件,因为你已经导入它但从未使用它。

+0

谢谢你!我会明天早上试试,并告诉你它是怎么回事。 –

+0

现在我修复了我的商店问题,但现在我得到一个空白屏幕......我认为它与我的AppNavigator.js或App.js有关。从我记得你需要AppRegistry.registerComponent('issicrm',()=> AppNavigator);导航工作..纠正我,如果我错了。 –

+0

@EricHan,很难让其他人来帮助你这个新的问题,而不知道你如何设置你的应用程序。我建议你为空白屏幕问题开一个新的问题,并接受这个答案,如果这有助于你解决你的原始问题 – dotcomXY