我有一个组件需要根据用户是否登录来隐藏/显示内容。我的Redux记录器正在显示正确的状态更改,但是所连接的组件未重新呈现。起初,我认为这是一个突变问题,但是在尝试使用immutable.js
和redux-starter-kit
的{{1}}进行相同操作但没有成功之后,我想到了另外一个问题。
据我了解,使用createReducer
时,该组件应重新呈现为本地状态。
异径管:
mapStateToProps
组件:
export default (
state = {
hasAuth: false,
},
action
) => {
switch (action.type) {
case AUTH_LOADED:
return { ...state, hasAuth: true }
default:
return state;
}
};
Root Reducer
class Screen extends PureComponent {
render() {
return (
<Fragment>
{this.props.hasAuth && <Text>Logged In</Text>}
</Fragment>
);
}
}
export default connect(state => ({
hasAuth: state.auth.hasAuth,
}))(Screen);
答案 0 :(得分:1)
您必须正确结合batchedSubscribe
连接Redux。
以下是带有简短指南的文档:https://github.com/tappleby/redux-batched-subscribe