如何从 redux 工具包获取操作类型

Ste*_*n G 5 redux redux-toolkit

我创建了一个Sliceusing createSlicefrom redux 工具包并导出了我的操作,例如:

export const { myAction } = slice.actions;
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个中间件来捕获某些操作类型:

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);
};
Run Code Online (Sandbox Code Playgroud)

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

mar*_*son 4

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

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

动作创建者还附加了一个.match()可以使用的功能:

if(myAction.match(action)) {
  // logic here
}
Run Code Online (Sandbox Code Playgroud)