0

我是redux的新手。我正在尝试让用户登录。

我只想了解通过操作发送信息的逻辑。

我希望用户输入用户名和密码并登录,并且他的状态将在线标记。这是流程:

UI -> 动作 -> 中间件 -> 减速器

因此,当用户单击登录按钮时,该操作将传递给 reducer。

我有 3 个选项来实现这一点:

  1. 用户单击登录按钮,将调用一个函数,该函数将获取用户的用户 id(使用 store.getState 中的 map),该 id 将传递给 action,然后将其发送到 reducer。

动作(用户 ID)=> 减速器

  1. 用户单击登录按钮,将调用一个函数,然后将用户名传递给该操作。然后 reducer 获取用户 ID 并设置用户 ID 的状态。

动作(用户名)=> 减速器

  1. 使用中间件获取用户 ID 并将其发送到 reducer

action(username) => 中间件 => reducer

我应该如何将登录逻辑应用于我的应用程序。

4

1 回答 1

0

这是我认为的正常流程:

  1. 用户输入用户名/密码
  2. 使用 ref 或 this.state 恢复这些信息(取决于用例)
  3. 使用动作创建者 ( doLog(username, pass))执行动作
  4. 调度该动作
  5. Reducer 将“捕获”该操作并从服务器异步获取。你可以使用 redux-tunk 或 redux-saga 这样你就可以在登录完成时调度另一个动作(loginSuccessAction())
  6. 再一次,reducer 应该“捕捉”那个动作,并更新 store
  7. 现在商店更改为新状态,页面应该更新(使用 mapStateToProps)
于 2016-11-19T00:08:18.427 回答