ReactJS+;Redux+;reduce thunk Can';不要发诺言

ReactJS+;Redux+;reduce thunk Can';不要发诺言,reactjs,redux,jsx,redux-thunk,Reactjs,Redux,Jsx,Redux Thunk,当我试图向redux发送承诺时,我收到了这个消息,我不知道我错了什么 未捕获错误:操作必须是普通对象。使用自定义中间件进行异步操作 1) 这是我的创意商店 从'redux'导入{createStore,applyMiddleware,compose} 从“redux thunk”导入thunk 从“redux logger”导入createLogger 从“../reducers/root.reducer”导入RootReducer 导出默认函数configureStore(预加载状态){ co

当我试图向redux发送承诺时,我收到了这个消息,我不知道我错了什么

未捕获错误:操作必须是普通对象。使用自定义中间件进行异步操作

1) 这是我的创意商店

从'redux'导入{createStore,applyMiddleware,compose}
从“redux thunk”导入thunk
从“redux logger”导入createLogger
从“../reducers/root.reducer”导入RootReducer
导出默认函数configureStore(预加载状态){
const store=createStore(
减根剂,
预加载状态,
谱写(
applyMiddleware(thunk),createLogger()
)
)
退货商店
}
2) 在我的组件中,我像这样发送我的操作

调度(myAction(myParam))
3) 这是我的行动代码

导出函数myAction(分派,myParam){
返回获取列表(myParam)
.then(response=>response.json())
。然后(json=>{
console.log(json)
})
.catch(错误=>{
如果(错误)
失误
})
}
但如果我这样称呼我的行为,那就是工作:

myAction(调度,myParam)

我认为存在redux thunk问题,但为什么…

使用
redux thunk
必须从动作创建者返回函数。
dispatch
将作为第一个参数传递给此函数,因此您可以在函数中的任何位置调用它,以
dispatch
执行不同的操作

导出函数myAction(myParam){
返回调度=>{
fetchList(myParam)
.then(response=>response.json())
。然后(json=>{
派遣({
类型:获取\列表\成功,
列表:json
});
})
.catch(错误=>{
如果(错误)
犯错误;
});
};
}

请仔细阅读。

Thunk允许动作创建者返回函数而不是普通对象,因此您可以像

导出函数myAction(myParam){
返回调度=>{
控制台日志(“正在运行”);
fetchList(myParam)
.then(response=>response.json())
。然后(json=>{
派遣({
类型:获取\列表\成功,
列表:json
});
})
.catch(错误=>{
如果(错误)
犯错误;
});
};
}
您返回了一个承诺对象,这是问题的一部分