在认证后,应该在Flux应用程序中进行存储重新获取操作的位置?

时间:2015-07-23 16:12:12

标签: javascript ajax reactjs flux

假设我有MessagesLoginForm个组件,MessageStoreUserStore(用于保存已登录的用户信息)。

匿名用户可以查看邮件,收藏和其他一些属性仅可用于经过身份验证。

LoginForm是模态的,当用户登录时,我需要使用包含用户特定属性的消息对象从MessageStore的API重新加载数据。

  • 我可以在LOGIN_SUCCESS(或每个感兴趣的人)中消化MessageStore 商店内的商店)和火灾回收行动。
  • 我可以在UserStore之后从控制器视图触发重新获取操作 变化。在这种情况下,我需要知道应该重新获取的所有商店 用户登录后。

在助焊剂应用中使用这种逻辑的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

在我创建的应用程序中,它使用登录页面,然后从API获取用户特定的事件,这是我使用的结构:

LoginPage(提交时) - > WebAPIUtils.login(电子邮件,密码) WebAPIUtils.login在响应时联系API - > actions.receiveLogin(响应)

receiveLogin然后使用LoginType 调用调度程序

我的sessionStore侦听调度,并在其switch语句中针对Login Response的情况设置商店中的用户信息以及sessionStorage。然后调用WebAPIUtils.getEvents()

WebAPIUtils.getEvents()然后从API请求用户的事件,一旦收到它就会调度一个receiveEvents操作,我的主商店会监听该操作并相应地更新商店中的事件。

我的组件侦听主存储中的更改,并且在getEvents()之后更新事件时,它会触发重新呈现。

您可以在此处找到此代码:https://github.com/hilary-L/react-cal-with-api