【发布时间】:2019-02-01 02:42:25
【问题描述】:
this.props.authState 保持不变,尽管我在 componentDidMount 函数中调度了一个操作:
componentDidMount() {
if (localStorage.getItem('token')) {
dispatch(updateAuthState('AUTHENTICATED'));
}
}
render() {
<div>{this.props.authState}</div>
}
Home.propTypes = {
authState: PropTypes.string
};
const mapStateToProps = (state) => {
return {
authState: state.authState
}
};
const mapDispatchToProps = (dispatch) => {
return {
}
};
export default connect(mapStateToProps, mapDispatchToProps)(Home);
输出为NO_AUTH(authState的初始值)
减速机:
export function authState(state = "NO_AUTH", action) {
switch (action.type) {
case 'AUTH_STATE':
return action.authState;
default:
return state;
}
}
知道为什么吗?
【问题讨论】:
-
请在这里分享你的减速机
-
因为你在 componentDidMount 中调度,这个方法每个组件只调用一次
-
不,这不是 componentDidMount() 的问题。除非之前卸载,否则不会再次挂载
标签: reactjs redux react-redux