在 React 的选项卡中迭代数组

Posted

技术标签:

【中文标题】在 React 的选项卡中迭代数组【英文标题】:Iterate Array in Tabs in React 【发布时间】:2020-10-23 18:03:22 【问题描述】:

我有一个名为 paymentMethods 的数组,我想将它迭代到选项卡?我的问题是我无法迭代它。

请在此处查看我的代码框CLICK HERE

   <div>
      paymentMethods && paymentMethods.length > 0 ? (
        <Paper square className=classes.root>
          <Tabs
            value=value
            onChange=handleChange
            variant="fullWidth"
            indicatorColor="secondary"
            textColor="secondary"
            aria-label="icon label tabs example"
          >
            <Tab icon=<PhoneIcon /> label="Card" />
            <Tab icon=<FavoriteIcon /> label="Paypal" />
          </Tabs>

          <Grid container spacing=4>
            <Grid item xs=12 sm=6 md=3>
              <Card className=classes.card>
                <CardHeader className=classes.cardHeader title=`****` />
                <CardContent className=classes.content>
                  <Table className=classes.table aria-label="simple table">
                    <TableBody>
                      <TableRow>
                        <TableCell variant="head">Type</TableCell>
                        <TableCell variant="body">Card</TableCell>
                      </TableRow>
                      <TableRow>
                        <TableCell variant="head">Card Number</TableCell>
                        <TableCell variant="body">***</TableCell>
                      </TableRow>
                      <TableRow>
                        <TableCell variant="head">Expiry Month</TableCell>
                        <TableCell variant="body">12/2</TableCell>
                      </TableRow>
                      <TableRow>
                        <TableCell variant="head">Expiry Year</TableCell>
                        <TableCell variant="body">2021</TableCell>
                      </TableRow>
                      <TableRow>
                        <TableCell variant="head">CVC</TableCell>
                        <TableCell variant="body">***</TableCell>
                      </TableRow>
                    </TableBody>
                  </Table>
                </CardContent>
              </Card>
            </Grid>
          </Grid>
        </Paper>
      ) : (
        <Typography>no available</Typography>
      )
</div>

【问题讨论】:

你能告诉我们你的错误吗? @Anh Tuan。其实没有错误。我只是无法迭代它。你能帮我迭代一下吗? 【参考方案1】:

Here我试图做一个有效的例子。您可以组织您的json 以实现更有效的循环。我刚刚创建了另一个常量来存储更多参数以放入选项卡中。

        paymentmethodNames.map((p, index) => (
          <Tab icon=p.icon label=p.title ...a11yProps(index) />
        ))

标签确实需要一些基于索引的面板选择。这些面板通过循环paymentMethods JSON 数据填充内容。当您将更改 JSON 结构时,只需添加一个条件语句。例如,PayPal 没有 CVC。

【讨论】:

【参考方案2】:

您可能正在寻找这样的东西:

  <Tabs
    value=value
    onChange=handleChange
    variant="fullWidth"
    indicatorColor="secondary"
    textColor="secondary"
    aria-label="icon label tabs example"
  >
  paymentMethods.map(p => (
      <Tab icon=<PhoneIcon /> label="p.label" />
  ))
  </Tabs>

请注意,标签和 onChange 代码只是一个猜测 - 您可能想将 p 中的一些内容放入模板中,但我不知道具体是什么。

【讨论】:

呃,不,对不起。这就是你在 React 中迭代的方式,使用 array.map。应用到您的代码应该足够了。 顺便说一句,我不确定你是否删除了赞成票,因为我不会分叉你的代码,但如果是这样,那有点粗鲁。我正在花时间免费帮助你,但我没有时间为你做你的工作。 好的,不用担心。可悲的是,习惯了这种事情。 嗨。你缺少一些东西。你把网格部分放在哪里?卡片部分 让我们continue this discussion in chat.

以上是关于在 React 的选项卡中迭代数组的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 React Navigation 5.x 在不同的选项卡中重置堆栈

无法在 React Bootstrap 的选项卡中使用表单

react-native-router-flux 在本机基本页脚选项卡中导航

当用户在浏览器选项卡中手动更改 url 时,防止在 React 中路由

在 React 中拖动 Div 中的图像时如何防止在新选项卡中打开

React Navigation 5 - 在导航到它之前从另一个选项卡中的另一个堆栈重置堆栈(类似于 popToTop())