Reactjs 允许操作创建者不分派操作
我与以下动作创建者有关联:Reactjs 允许操作创建者不分派操作,reactjs,redux,Reactjs,Redux,我与以下动作创建者有关联: export const toggleLoginModal = () => { return { type: "TOGGLE_LOGIN_MODAL", }; }; 我正在connect()的容器上使用它: 这是一个“愚蠢”的动作创建者-它总是返回相同的对象。 我希望它通过检查redux存储来检查用户是否已经登录,如果用户已经登录,它就不应该发送任何操作 我曾想过在action creator中返回空值,但我认为这是一种糟糕的做法。。。 此外,
export const toggleLoginModal = () => {
return {
type: "TOGGLE_LOGIN_MODAL",
};
};
我正在connect()的容器上使用它:
这是一个“愚蠢”的动作创建者-它总是返回相同的对象。
我希望它通过检查redux存储来检查用户是否已经登录,如果用户已经登录,它就不应该发送任何操作
我曾想过在action creator中返回空值,但我认为这是一种糟糕的做法。。。
此外,返回一个表示“忽略此操作”的操作似乎也不正确
动作创建者是否可能根本不发送动作?
如果是这样的话,这将如何融入连接方法中?在我看来,您有三个选项:
isLoggedIn
逻辑,防止调用toggleLoginModal
redux thunk
访问存储,并且可以选择根本不执行dispatch
操作class MyComp extends Component {
render () {
return (
<div>
{!this.props.isLoggedIn && <button onClick={() => toggleLoginModal()}>Toggle</button>}
</div>
);
}
}
如果符合您的要求,我会完全隐藏按钮(示例1)
class MyComp extends Component {
render () {
return (
<div>
{!this.props.isLoggedIn && <button onClick={() => toggleLoginModal()}>Toggle</button>}
</div>
);
}
}
function toggleLoginModal () {
return (dispatch, getState) => {
const { auth } = getState();
if (auth.isLoggedIn) {
return;
}
dispatch({
type: "TOGGLE_LOGIN_MODAL",
});
};
}