【问题标题】:Saving event handlers to Redux.Store - is a good idea?将事件处理程序保存到 Redux.Store - 是个好主意吗?
【发布时间】:2018-06-22 19:30:54
【问题描述】:

例如,考虑这样的组件结构:

<Provider>
  <App>
    <LoginForm />
  </App>
</Provider>

LoginForm在尝试认证的情况下——应该调用控制器的函数Auth(Login, Password),在授权成功的情况下,将改变存储并填充SessionId。

如果链接到 Redux.Store 中的 Auth 函数是个好主意吗? 如果不是 - 如何将Auth 函数的链接传递给 LoginForm 组件?

【问题讨论】:

    标签: reactjs redux react-redux jsx


    【解决方案1】:

    Auth 函数是您应用中的副作用。与redux无关。为了处理异步副作用,你必须使用 redux-thunk 或 redux-saga 之类的东西。

    【讨论】:

    • 我想说LoginForm 不应该做Ajax。当用户输入登录名和密码时,LoginForm 应该调用处理程序。但是处理程序从何而来?可以将它作为 jsx 中的道具传递给 LoginForm。但是如果有Redux,为什么不在LoginForm.props中映射存储,在Redux.Store中保存handler呢?
    • 处理程序实际上应该是一个 Redux 操作。将表单连接到 Redux 并使用 mapDispatchToProps 传递动作创建者。那是我相信正确的方法。之后你会遇到另一个问题——谁在等待这个动作并触发 Auth 功能?这就是 redux-thunk 和 redux-saga 发挥作用的地方。
    猜你喜欢
    • 1970-01-01
    • 2013-04-01
    • 2011-06-01
    • 2015-01-04
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    相关资源
    最近更新 更多