【发布时间】:2017-05-07 02:38:00
【问题描述】:
新手在这里尝试学习一些 Redux。 目标:获得一个按钮来点击和登录/注销,无论哪种方式都将商店更新为真/假状态。
const store = createStore(myReducer)
创建了我的商店,传入了我的减速器。
这具有注销的默认状态。并在单击按钮时返回相反的结果。
我知道此操作通过调试起作用。
function myReducer(state = { isLoggedIn: false }, action) {
switch (action.type) {
case 'TOGGLE':
return {
isLoggedIn: !state.isLoggedIn
}
default:
return state
}
}
问题从这里开始——当我尝试访问 store.getState() 数据时。
class Main extends React.Component {
render() {
return (
<div>
<h1>Login Status: { state.isLoggedIn }</h1>
<button onClick={this.props.login}>Login</button>
</div>
)
}
}
const render = () => {
ReactDOM.render(<Main status={store.getState().isLoggedIn} login={() => store.dispatch({ type: 'TOGGLE' })}/>, document.getElementById('root'));
}
store.subscribe(render);
render();
我尝试了 store.getState().isLoggedIn & store.getState() & this.props.status,然后在 Main 组件中分配 store.getState().isLoggedIn - 但没有任何效果。
谁能告诉我哪里出错了?
【问题讨论】:
标签: redux react-redux