【问题标题】:How is next defined in a custom react redux middleware?如何在自定义 react redux 中间件中定义下一个?
【发布时间】:2016-08-29 20:32:58
【问题描述】:

Going through the process of middleware,Dan 将next 定义为原始调度,但在创建中间件时,他没有。 next 在这里定义的位置和方式:

const logger = store => next => action => {
  console.group(action.type)
  console.info('dispatching', action)
  let result = next(action)
  console.log('next state', store.getState())
  console.groupEnd(action.type)
  return result
}

【问题讨论】:

  • 你是在问记录器接下来是如何传入的吗?
  • 是的,这正是我要问的
  • 是存储和下一个由#applyMiddleware 传入的东西吗?如果它指的是来自前一个中间件的调度,为什么会调用它呢?
  • 中间件会阻止自动触发下一个动作,因此您可以执行内部的任何操作,例如您可以记录该动作。所以它让你在两者之间有一点休息时间来做你想做的任何事情。它被称为 next 因为它是被调度的“下一个”动作,它是当前调度的继续。把它想象成“我已经完成了我在这个中间件中需要做的事情,所以让我们继续下一个”。
  • 但在文档中,dan 使用 next 来指代原始调度

标签: javascript reactjs redux middleware react-redux


【解决方案1】:

在哪里

nextapplyMiddleware 提供。

如何

来自参考来源,

var middlewareAPI = {
  getState: store.getState,
  dispatch: (action) => dispatch(action)
}
chain = middlewares.map(middleware => middleware(middlewareAPI))
dispatch = compose(...chain)(store.dispatch)

middlewareAPI 是传递给中间件的第一级参数。 它通常被命名为store

store.dispatch 是提供的next,它是第二级参数。

【讨论】:

    猜你喜欢
    • 2021-03-11
    • 2020-09-21
    • 2017-05-05
    • 2017-09-08
    • 1970-01-01
    • 2015-12-24
    • 2021-08-05
    • 2020-07-18
    • 2018-06-12
    相关资源
    最近更新 更多