在调试时,我点击了下面的路由连接功能,但我没有点击mapStateToProps或mapDispatchToProps。我在控制台中看不到任何错误,但由于mapStateToProps没有被调用,我没有看到我商店的值显示在道具中。
调用connect函数时,不应该触及mapStateToProps中的debugger
,因为它调用了mapStateToProps吗?我的理解是connect
调用传递给它的函数。
大多数类似的问题都试图弄清楚为什么mapStateToProps没有被调用状态改变,但我甚至没有做到那么远。我正在谈论组件的初始加载和与商店的连接。
我正在使用路由器进行导入并连接。
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));
}
};
}
答案 0 :(得分:-1)
我认为如果你写下面的内容,它会起作用:
function mapStateToProps(state,ownProps) {
return {
Something : state.Something
};
}
然后您可以通过以下方式访问商店:
this.props.Something