reactjs - 集成时出现此错误错误:操作必须是普通对象。使用自定义中间件进行异步操作
问题描述
我在调度操作时遇到了这个错误。我之前使用过这种方法,这次它一直显示这个错误。请帮助我无法找到任何解决方案。提前致谢。
行动:
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])
解决方案
推荐阅读
- asp.net-mvc - samba 网络驱动器中的 Visual Studio 项目导致 IIS Express 权限被拒绝
- mysql - 我们可以在没有mysql中的过程的情况下执行IF ELSE吗
- java - 在 .bash_profile 中设置 JAVA_HOME 不返回正确的路径
- python - Python字典将值插入为元组而不是浮点数
- java - spring bean 方法:如何获取方法名称?
- javascript - 如何使粘性 div 响应浮动(位置:固定)div?
- python - 将具有不同键的字典写入 CSV 文件
- android - 如何获取已解析的十六进制颜色字符串以供重用?
- python - 测试经过训练的 python 模型时出现以下错误
- fortran - 如何在 do 循环中区分结果和前一个结果?