Reactjs mapStateToProps必须返回一个对象。相反,接收到的是未定义的
我在前端使用react with redux并调用elixir phoenix后端API。 一切似乎都正常,但我的javascript控制台中有这个错误Reactjs mapStateToProps必须返回一个对象。相反,接收到的是未定义的,reactjs,redux,phoenix-framework,react-redux,Reactjs,Redux,Phoenix Framework,React Redux,我在前端使用react with redux并调用elixir phoenix后端API。 一切似乎都正常,但我的javascript控制台中有这个错误 错误:MapStateTrops必须返回一个对象。相反,收到的是未定义的。 我已经实现了redux记录器,这是从他那里看到的对象 我看不出有什么不正确的地方,在行动之后,物体都是正确的。我可以在phoenix中看到,用户同时加入了套接字和通道 因为这个错误似乎在mapStateToProps附近,所以我最好看看那个代码 从“React”导入
错误:MapStateTrops必须返回一个对象。相反,收到的是未定义的。
我已经实现了redux记录器,这是从他那里看到的对象
我看不出有什么不正确的地方,在行动之后,物体都是正确的。我可以在phoenix中看到,用户同时加入了套接字和通道
因为这个错误似乎在mapStateToProps
附近,所以我最好看看那个代码
从“React”导入React;
进口{
连接
}
来自“react redux”;
类AuthenticatedContainer扩展了React.Component{
componentDidMount(){
const{dispatch}=this.props;
}
render(){
const{currentUser,dispatch,socket}=this.props;
如果(!currentUser)返回false;
返回(
{
这是道具
}
);
}
}
常量mapStateToProps=(状态)=>({
currentUser:state.session.currentUser,
套接字:state.session.socket,
频道:state.session.channel,
});
出口
默认连接(MapStateTops)(AuthenticatedContainer)代码>我找到了导致我出现此问题的原因。
这个Redux调用完成后,代码继续运行,并将我重定向到另一个控制器。该控制器的视图和MapStateTops具有未定义的值。修正了这个错误,错误就消失了
但就我有限的Redux知识而言,我所看到的是错误的,因为从我所能看到的情况来看,记录器在“当前用户”操作中失败了。当它在“FETCH_MILESTONE”操作中实际失败时,witch将一个未定义的值映射到props。
我会做一些关于这个主题的阅读,如果有人读到这篇文章并且对实际发生的事情有很好的理解,我将不胜感激
可能的解决方案对于看到此问题的其他人,请检查对MapStateTrops
的所有调用,并查看是否有任何值可能未定义。是否定义了state=initialState
中使用的initialState
对象?是的,更新了会话缩减器以显示整个文件,很抱歉之前没有这么做。我不确定,但从上面的代码中,我只能建议尝试将mapStateToProps=(state)=>({…})
重写为纯JS-const-mapstatetops=function(state){return{…};}
尝试过,没有运气