2017-07-25 65 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