我有这个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,它打破了)。
提前致谢。
答案 0 :(得分:2)
如果您不需要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
。