Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 对同一数组进行React映射,但呈现不同的输出_Arrays_Reactjs_Children - Fatal编程技术网

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个道具(句点、数据)将其称为句点。
这样,您甚至可以在其他地方使用它。

这是相同的,因为我将调用该组件两次,并且在数组上的映射量与现在相同。