【发布时间】:2018-03-05 20:29:07
【问题描述】:
在调试时,我点击了以下 withRouter 连接函数,但没有点击 mapStateToProps 或 mapDispatchToProps。我在控制台中没有看到任何错误,但是因为没有调用 mapStateToProps,所以我没有看到我的商店中的值显示在道具中。
由于调用了mapStateToProps,所以调用connect函数时是否应该点击mapStateToProps中的debugger?我的理解是connect调用传入的函数。
大多数类似的问题都试图弄清楚为什么 mapStateToProps 没有在状态变化时被调用,但我什至还没有做到这一点。我说的是组件的初始加载和与商店的连接。
我正在使用Router 导入并连接。
export default withRouter(connect(mapStateToProps, mapDispatchToProps)(KpiSummaryContainer) as any);
function mapStateToProps(store: any) {
debugger;
return {
...store.kpiSummaryState,
};
}
function mapDispatchToProps(dispatch: any) {
debugger;
return {
selectKpiSummaryTimePeriod: (timePeriod: any) => {
dispatch(kpiSummaryActionCreators.onKpiSummaryTimePeriodUpdate(dispatch, timePeriod.value));
}
};
}
【问题讨论】:
-
您是从各自的模块中导入
withRouter和connect吗? -
@jmargolisvt 是的,我是。抱歉没有包含该信息
-
在您的渲染中,您确定您使用的是从该文件导出的组件,而不是直接使用 KpiSummaryContainer 吗?
-
@lorefnon 你成功了。非常感谢。我正用头撞墙,知道这一定很简单。我是直接导入 KpiSummaryContainer 而不是导出的组件
-
哦,太好了。去过也做过。很高兴能提供帮助。
标签: javascript reactjs redux react-props