我有这个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
,但用于不同的道具。我怎样才能做到这一点? (当我只有... ESFReport时,它可以正常工作,但是当我添加... resultStatusReport时,它坏了)。
提前致谢。
最佳答案
如果您不需要report
和ESFReport
对象中的resultStatusReport
以外的任何内容,则可以执行以下操作:
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
重命名为ESFReport
和resultStatusReport
。然后,您将拥有实际上是this.props.ESFReport
的ESFReport.report
和将是this.props.resultStatusReport
的resultStatusReport.report
。