假设我有 Messages
、LoginForm
组件、MessageStore
和 UserStore
(用于保存登录的用户信息)。
匿名用户可以查看消息、收藏夹以及一些其他属性仅适用于经过身份验证的用户。
LoginForm
是模态的,当用户登录时,我需要从 MessageStore
的 API 重新加载数据,其中消息对象包含用户的特定属性。
- 我可以在
MessageStore
中消化LOGIN_SUCCESS
(或者每个感兴趣的人) store) 并在 store 内进行 fire refetch 操作。 - 我可以在
UserStore
之后从 Controller View 触发重新获取操作 变化。在这种情况下,我需要知道应该重新获取的所有商店 用户登录后。
在通量应用程序中执行此逻辑的正确方法是什么?
最佳答案
在我制作的一个使用登录页面然后从 API 获取用户特定事件的应用程序中,这是我使用的结构:
LoginPage(提交时)-> WebAPIUtils.login(电子邮件、密码) WebAPIUtils.login 联系 API,响应后 -> actions.receiveLogin(response)
receiveLogin 然后使用登录响应的 actionType 调用调度程序
我的 sessionStore 监听调度,并在登录响应情况下的 switch 语句中设置存储和 sessionStorage 中的用户信息。然后它调用 WebAPIUtils.getEvents()
WebAPIUtils.getEvents() 然后从 API 请求用户的事件,收到后它会调度一个 receiveEvents 操作,我的主商店会监听该操作并相应地更新商店中的事件。
我的组件监听主存储中的更改,当事件在 getEvents() 之后更新时,它会触发重新渲染。
您可以在这里找到相关代码:https://github.com/hilary-L/react-cal-with-api
关于javascript - 身份验证后应在 Flux 应用程序中的何处进行存储重新获取操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31592746/