javascript - 身份验证后应在 Flux 应用程序中的何处进行存储重新获取操作?

标签 javascript ajax reactjs flux

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

匿名用户可以查看消息、收藏夹以及一些其他属性仅适用于经过身份验证的用户。

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/

相关文章:

javascript - 使用 django 框架或 javascript/AJAX 删除对象

php - 用于创建下载文件的 Jquery AJAX 调用似乎运行了两次 - 很难理解为什么 :o(

javascript - 在选中复选框时切换子节点

reactjs - React JS - 元素专注于输入不起作用

javascript - 当某个元素加载时间过长时激活 div

JavaScript 正则表达式 : Match any non-word character that is not a whitespace character

javascript - 用 JavaScript 替换类名

javascript - 根据彼此自动更改 2 个字段

php - Ajax 状态为 `success` 但回调无法正常工作

javascript - 使用 React hooks 获取数据清理异步回调