【问题标题】:Redux connect not calling mapStateToProps or mapDispatchToProps on initial loadRedux 连接在初始加载时不调用 mapStateToProps 或 mapDispatchToProps
【发布时间】: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)); 
      }
  };
}

【问题讨论】:

  • 您是从各自的模块中导入withRouterconnect 吗?
  • @jmargolisvt 是的,我是。抱歉没有包含该信息
  • 在您的渲染中,您确定您使用的是从该文件导出的组件,而不是直接使用 KpiSummaryContainer 吗?
  • @lorefnon 你成功了。非常感谢。我正用头撞墙,知道这一定很简单。我是直接导入 KpiSummaryContainer 而不是导出的组件
  • 哦,太好了。去过也做过。很高兴能提供帮助。

标签: javascript reactjs redux react-props


【解决方案1】:

我想如果你像下面这样写,它会起作用的:

function mapStateToProps(state,ownProps) {

  return {
   Something : state.Something
  };
}

那么你就可以通过这个进入商店了:

this.props.Something

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-03
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 2019-01-27
    • 2021-01-05
    • 2018-05-19
    相关资源
    最近更新 更多