【问题标题】:Redux actions callbackRedux 操作回调
【发布时间】:2019-09-29 13:21:43
【问题描述】:

我陷入了这样一种情况,我调用了一个 redux 操作,该操作更新了 store 中的状态,进而更新了一个组件。我想在该组件更新时收到回调。我怎样才能收到该回调?

【问题讨论】:

  • 接到回电到哪里..! componentDidupdate 会帮助你。但是没有代码..你没有巧克力!
  • 我正在调用该操作的同一位置。就像执行该操作并更新相应组件时的回调
  • 你为什么想要那个回调?这是商店更改可以适应而不是依赖特定回调的东西吗?
  • 这不是你应该做的事情,但如果你使用 react-redux connect 那么你可以做theAction(argument).then(()=>acion done here) 假设 theAction 调度的动作是一个返回承诺的函数。我认为你不应该使用它,我只在 next.js getInitialProps 上使用过它,但我什至不确定我是否应该在那里使用它。

标签: reactjs redux redux-thunk


【解决方案1】:

如果你需要接收一个回调,你需要使用callbackable-actions标准化的动作。 actions-creator包有回调能力,可以用来创建回调能力的动作对象。

npm install actions-creator
import actionsCreator from "actions-creator"
const my_callback = () => {
    console.log("Hello, I am callback!!!")
}
const callbackable_action = actionsCreator.CALLBACKABLE.EXAMPLE(1, 2, 3, my_callback)
console.log(callbackable_action)
//      {
//          type: "CALLBACKABLE/EXAMPLE",
//          args: [1, 2, 3],
//          cb: f() my_callback,
//          _index: 1
//      }
callbackable_action.cb()
//      "Hello, I am callback!!!"

更多信息,请参阅:Actions Creator

【讨论】:

    【解决方案2】:

    您可以将回调函数作为参数传递给您的操作,例如:

    在您的组件中调用您的操作:

    yourFunction(data, callback())
    

    在你的行动中:

    yourFunction(data, callback){
      ... do what you have to ...
      callback()
    }
    

    不是一个很清楚的例子,但如果你想得到更好的答案,你应该把你的代码放在你的问题中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-27
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      相关资源
      最近更新 更多