正如标题中所述,我在尝试调用返回(dispatch)=>的操作时收到错误“操作必须是普通对象...” {...}
这是整个项目:https://github.com/bmuk/youtube-dj
这是我创建商店的地方:https://github.com/bmuk/youtube-dj/blob/master/src/index.js
以下是我的行动:https://github.com/bmuk/youtube-dj/blob/master/src/actions.js
这是违规容器:https://github.com/bmuk/youtube-dj/blob/master/src/containers/NextVideo.js
我意识到还有很多其他问题,但是我无法从他们那里收集任何可操作的信息。我有redux-thunk,我在不同的项目中使用它(它只是不使用这样的容器,我将动作作为一个整体传递给子组件)并且它工作得很好,即使使用redux devtools,这是大多数人遇到此错误消息的问题。
答案 0 :(得分:1)
我不确定这是否是您问题的根源,但是当您使用reactDispatchToProps和react-redux的连接方法时,您也不应该有任何理由使用bindActionCreators。它应该可以正常工作:
const mapDispatchToProps = (dispatch) => {
return {
pushVideo: (video) => dispatch(pushVideo(video))
};
};
如果这不能解决问题,我可以更深入地调查,但这将简化正在进行的工作并使其更容易深入挖掘。
进一步挖掘...... 你需要摆脱bindActionCreators调用它才能工作,但主要问题是react-inline-grid。如果你删除网格它的工作原理。网格正在创建自己的商店(它没有thunk中间件),然后当你在网格中时连接到它时,它会与你的商店发生冲突。