【问题标题】:How to get the action type from redux toolkit如何从 redux 工具包中获取动作类型
【发布时间】:2020-04-12 13:44:47
【问题描述】:

我使用 redux 工具包中的 createSlice 创建了一个 Slice 并导出了我的操作,例如:

export const { myAction } = slice.actions;

我正在尝试创建一个中间件来捕捉一些动作类型:

import myAction from './reducers/mySlice'

const MyMiddleware = store => next => action => {
  if (action.type === myAction.type) {   //this doesn't work, myAction is a function
    doSomething(action.payload);
  }
   return next(action);
};

我想知道是否可以从我创建的切片中将动作类型作为常量获取?

【问题讨论】:

  • 非常感谢action.type 提示。我什至不知道我们可以调用.type 来获取实际类型!

标签: redux redux-toolkit


【解决方案1】:

您的导入语句是错误的。您正在执行命名导出 (export {myAction}),但执行的是默认导入 (import myAction)。

将其更改为import {myAction} from './reducers/mySlice',该中间件应该可以工作了。

动作创建者还可以使用a .match() function attached

if(myAction.match(action)) {
  // logic here
}

【讨论】: