首页 > 解决方案 > 集成时出现此错误错误:操作必须是普通对象。使用自定义中间件进行异步操作

问题描述

我在调度操作时遇到了这个错误。我之前使用过这种方法,这次它一直显示这个错误。请帮助我无法找到任何解决方案。提前致谢。

行动:

export const listPackages = () => async (dispatch) => {
try {
    dispatch({ type: PACKAGE_LIST_REQUEST })

    const {data} = await axios.get('/api/packages/all')

    dispatch({
        type: PACKAGE_LIST_SUCCESS,
        payload: data  
    })

} catch (error) {
    dispatch({
        type: PACKAGE_LIST_FAIL,
        payload: error.message && error.response.data.message ? error.response.data.message : error.message
    })
  }
}

我的减速机:

import {
PACKAGE_LIST_REQUEST,
PACKAGE_LIST_SUCCESS,
PACKAGE_LIST_FAIL
} from "../constants/packageConstants"

export const packageListReducer = (state = {packages: []}, action) => {
switch(action.type){
    case PACKAGE_LIST_REQUEST:
        return {loading: true, packages: []}
    case PACKAGE_LIST_SUCCESS:
        return {loading: false, packages: action.payload}
    case PACKAGE_LIST_FAIL:
        return {loading: false, error: action.payload}
    default:
        return state
  }
}

我的店铺:

import {createStore, combineReducers, applyMiddleware} from "redux"
import thunk from "redux-thunk"
import {composeWithDevTools} from "redux-devtools-extension"

import {packageListReducer} from "./reducers/packageReducers";

const reducer = combineReducers({
packageList: packageListReducer,
})

const initialState = {}
const middleware = [thunk]
const store = createStore(reducer,initialState,composeWithDevTools(applyMiddleware(...middleware)))

export default store

我发送动作的组件:

import {listPackages} from "../actions/packageActions"

export default function HomeScreen1() {

  const dispatch = useDispatch()

  const packages = []

  useEffect(() => {
dispatch(listPackages())
  }, [dispatch])

标签: reactjsreact-reduxredux-thunk

解决方案


推荐阅读