Arrays 对同一数组进行React映射,但呈现不同的输出
在我的渲染方法中,我需要在同一数组上映射两次,以渲染数组中对象的不同属性。 因此,情况就是这样:Arrays 对同一数组进行React映射,但呈现不同的输出,arrays,reactjs,children,Arrays,Reactjs,Children,在我的渲染方法中,我需要在同一数组上映射两次,以渲染数组中对象的不同属性。 因此,情况就是这样: <Row> <Column xs="12" md="6"> <Row> <Column xs="12"> <Undertekst> <FormattedMessage id="InfoPanel.PaymentDates" /&g
<Row>
<Column xs="12" md="6">
<Row>
<Column xs="12">
<Undertekst>
<FormattedMessage id="InfoPanel.PaymentDates" />
</Undertekst>
</Column>
</Row>
{getPeriods(payment.periods, periodsDates)}
</Column>
<Column xs="12" md="6">
<Row>
<Column xs="12">
<Undertekst>
<FormattedMessage id="InfoPanel.PaymentAmount" />
</Undertekst>
</Column>
</Row>
{getPeriods(payment.periods, amount)}
</Column>
</Row>
{getPeriods(payment.periods,periodsDates)}
{getPeriods(payment.periods,amount)}
因此,由于我需要在两个位置映射同一数组,所以我创建了一个函数,该函数接受一个数组和一个函数,该函数将从数组中的当前对象渲染子元素
const periodsDates = period => `${moment(period .from).format(DDMMYYYY_DATE_FORMAT)} - ${moment(period .to).format(DDMMYYYY_DATE_FORMAT)}`;
const amount= period => formatCurrency(period.amount);
const getPeriods = (periods, children) => periods.map(period => (
<Row>
<Column xs="12">
<Normaltekst>
{children(period )}
</Normaltekst>
</Column>
</Row>
));
const periodsDates=period=>“${moment(period.from).format(ddmmyyyyy_DATE_format)}-${moment(period.to).format(ddmmyyyyy_DATE_format)}”;
常量金额=期间=>formatCurrency(期间金额);
const getPeriods=(periods,children)=>periods.map(period=>(
{儿童(时期)}
));
我想知道这是否是解决这个问题的方法,或者是否有更好的方法来解决这个问题,如果可能的话,可以使用curry?您可以构建一个新的无状态组件,比如说,您可以使用2个道具(句点、数据)将其称为句点。
这样,您甚至可以在其他地方使用它。这是相同的,因为我将调用该组件两次,并且在数组上的映射量与现在相同。