例如,如果您阅读了redux-saga的文档中的this部分,则会有一个与登录流程相关的示例,如下所示。
function* loginFlow() {
while (true) {
yield take('LOGIN')
// ... perform the login logic
yield take('LOGOUT')
// ... perform the logout logic
}
}
正如那里所说:
loginFlow Saga更清楚地传达了预期的动作序列。 它知道LOGIN操作应始终跟随LOGOUT 操作,LOGOUT后面总是有一个LOGIN
LOGOUT是否始终遵循LOGIN?我不这么认为。例如,当用户像往常一样登录网站时,会话将存储在网站的cookie中,当用户再次访问该网站时,loginFlow saga将如何捕获LOGOUT操作?
或者,下一个示例,再次登录描述here。我想知道如果授权还没有完成,用户可以点击LOGOUT,还没有显示用户退出网站的按钮?这些例子听起来很奇怪我有点困惑。
有人能解释一下这些例子如何适应登录流程的真实情况吗?
感谢。
答案 0 :(得分:0)
只有当一个Action /或Actions与之关联时,saga才会运行。 例如,您有一个按钮,用于调度类型为{type:“LOGIN_LOGOUT”,data}的操作。现在假设只有当这个动作发送时,才会调用上面的saga。 如果登录,它将注销,反之亦然,因此示例。