【问题标题】:Redux ajax workflow with prelogic带有 prelogic 的 Redux ajax 工作流
【发布时间】:2016-04-22 06:16:02
【问题描述】:

我正在编写一个安静的 redux/react 应用程序。 我想要的输出是这样的。

INPUT_CHANGE-->
(state = {valid: false})->REDUCER->(state = {valid: true})-->
AJAX CALL

从 redux 文档来看,异步 javacript 应该是从动作创建者调用的,但是我不明白一旦状态从 valid:false 变为 valid:true 后如何访问动作创建者。

由于这是一个 react 应用程序,我可以更改一个名为 valid 的隐藏输入,它附加了一个 onChange 操作创建器,但这似乎是一个不必要的额外步骤。有任何想法吗?

【问题讨论】:

  • 某些东西必须在监听有效的状态变化。无论在哪里,您都可以使用componentWillUpdate 来触发执行异步操作的动作创建者。
  • 使用redux,组件在技术上会更新吗?我认为重点是用新的道具重新渲染?
  • 完全正确...每当组件即将使用新道具重新渲染时 componentWillUpdate 就会触发。一般的观点是观察状态变化的东西(如连接的组件)需要触发一个动作(如 ajax 调用)
  • 好吧,这对我来说很有意义!干杯
  • 但要小心无限循环!请记住,您应该只在某些条件下发送更多的状态更改。每当状态改变时就派发是很诱人的,但是状态改变状态改变状态,所以请记住这一点

标签: ajax reactjs reactjs-flux redux


【解决方案1】:

我的一般偏好是让动作创建者处理所有异步操作。所以本题的验证操作和http://rackt.org/redux/docs/advanced/AsyncActions.html中的shouldFetchPosts函数差不多

动作创建者将类似于inputChangeAndSubmitIfValid,对应于该文件的fetchIfNeeded动作创建者。

在极少数情况下,我会实施 observer 来捕捉商店变化,但我总是首先尝试找到更好的面向操作的方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-29
    • 2022-12-15
    • 1970-01-01
    相关资源
    最近更新 更多