【发布时间】:2017-12-17 15:07:29
【问题描述】:
我希望我的导航组件监听 redux 存储,以便在用户登录时将登录按钮更改为注销按钮,但导航组件无权访问状态
我是 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')
);
在 Main 中,我这样渲染子项和 Navigation:
var Main = (props) => {
return (
<div>
<Navigation/>
<div className="container">
{props.children}
</div>
</div>
);
}
在我的所有组件中,除了导航之外,我都可以通过 this.props 访问我的 redux 存储/状态。
当我在导航组件中记录 this.props 时,我得到:
Object {dispatch: function}
但在菜单组件中我得到:
Object {history: Object, location: Object, params: Object, route: Object, routeParams: Object…}
【问题讨论】: