2017-07-13 45 views
1

我希望我的導航組件能夠收聽到redux存儲庫,以便在用戶登錄時可以將登錄按鈕更改爲註銷按鈕,但導航組件無法訪問狀態未連接到Redux Store的React組件

我是新來的反應,請讓我知道如果我需要提供更多的信息

在app.jsx我:

ReactDOM.render(
    <Provider store={store}> 
    <Router history={hashHistory}> 
     <Route path="/" component={Main}> 
     <IndexRoute component={Menu}/> 
     <Route path="about" component={About}/> 
     <Route path="item/:id" component={Item}/> 
     <Route path="login" component={Login}/> 
     </Route> 
    </Router> 
    </Provider>, 
    document.getElementById('app') 
); 

在主,我使孩子和導航因此:

var Main = (props) => { 
    return (
    <div> 
     <Navigation/> 
     <div className="container"> 
     {props.children} 
     </div> 
    </div> 
); 
} 

在我所有的組件中,除了導航之外,我可以通過this.props訪問我的redux存儲/狀態。

當我登錄導航組件this.props我得到:

Object {dispatch: function} 

但在Menu組件獲得:

Object {history: Object, location: Object, params: Object, route: Object, routeParams: Object…} 

回答

0

我猜你的店是錯誤的。 store = createStore(rootReducer)?忘記連接組件?

+0

哇,哈哈。我的商店是正確的,我有它連接,但我沒有通過連接狀態。我認爲它不會將導航渲染爲兒童。感謝您捕捉我愚蠢的錯誤 –