繁体   English   中英

反应-用相同的道具传播MapStateToProps

[英]React - Spread MapStateToProps with the same props

我有这个MapStateToProps:

const mapStateToProps = (state) => {
  const date = new Date();
  const year = date.getFullYear();
  const month = date.getMonth() + 1;

  const ESFReport = getESFReport(state);
  const resultStatusReport = getResultStatusReport(state);

  return {
    companInfo: getCompanyInfo(state),
    companyId: getCompanyId(state),
    ...ESFReport,
    ...resultStatusReport,
    year,
    month,
  };
};

而且...ESFReport,...resultStatusReport都具有相同的属性: report但我需要以某种方式更改名称,因为在同一组件中,我两次使用const { report } = this.props ,但用于不同的props。

我怎样才能做到这一点? (当我只有... ESFReport时,它可以工作,但是当我添加... resultStatusReport时,它坏了)。

提前致谢。

如果除了ESFReportresultStatusReport对象的report ,您不需要其他任何ESFReportresultStatusReport可以执行以下操作:

const mapStateToProps = (state) => {
  const date = new Date();
  const year = date.getFullYear();
  const month = date.getMonth() + 1;

  const { report: ESFReport } = getESFReport(state);
  const { report: resultStatusReport } = getResultStatusReport(state);

  return {
    companInfo: getCompanyInfo(state),
    companyId: getCompanyId(state),
    ESFReport,
    resultStatusReport,
    year,
    month,
  };
};

它只是将每个report属性重命名为ESFReportresultStatusReport 然后,您将拥有this.props.ESFReport实际上是ESFReport.reportthis.props.resultStatusReport它将是resultStatusReport.report

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM