React native 在通过react saga收到成功操作后,我是否可以更改应用程序屏幕?

React native 在通过react saga收到成功操作后,我是否可以更改应用程序屏幕?,react-native,redux-saga,React Native,Redux Saga,我正在尝试使用react saga实现一个登录流 我创建了三个操作:请求登录、成功登录、失败登录 通过调用REQ_LOGIN从服务器检索数据,然后执行SUCCESS_LOGIN操作,我成功地访问了reducer 但是,成功登录后,必须将令牌值保存在AsyncStorage中,并且必须通过react导航切换视图 但这不能在减速器中完成吗?通过“(反应导航)库”的“导航”参数,在执行成功登录操作时,必须更改屏幕 我不知道该怎么办我可以建议您使用另一种方法:您可以将令牌保存在您的存储中(如果您使用re

我正在尝试使用react saga实现一个登录流

我创建了三个操作:请求登录、成功登录、失败登录

通过调用REQ_LOGIN从服务器检索数据,然后执行SUCCESS_LOGIN操作,我成功地访问了reducer

但是,成功登录后,必须将令牌值保存在AsyncStorage中,并且必须通过react导航切换视图

但这不能在减速器中完成吗?通过“(反应导航)库”的“导航”参数,在执行成功登录操作时,必须更改屏幕


我不知道该怎么办

我可以建议您使用另一种方法:您可以将令牌保存在您的存储中(如果您使用redux或其他存储管理器)并使用持久化库(例如redux),而不是直接将其保存在异步存储中它还可以将数据保存到异步存储中,并提供再水化功能。

您读过这篇文章吗?您好,我认为上述文章将有助于您的关注;一旦与成功登录相关的应用程序状态发生更改,您可以使用switch navigator切换导航堆栈。我认为这是最方便的方法。关于为什么不能直接在reducer中执行此操作的问题,reducer应该是纯/无副作用的,因此不鼓励在
AsyncStorage
中设置项或调用具有其他模块副作用的方法。如果您使用的是
redux saga
,您可以使用saga来收听
SUCCESS\u LOGIN
操作并执行saga的副作用。