使用 React-Native 返回迭代

Returning iterations with React-Native

我使用 React 的时间不长,但我一直运行 关注这个问题,每次都试图避免它。

在遍历我的 forloop 时,它给了我两个不同的迭代,正如预期的那样。

输出:

{name: "Sensor 1", type: "Airsensor"}

{name: "Sensor 2", type: "Watersensor"}

但是,我的代码似乎只使用了第二次迭代。

屏幕输出:

{name: "Sensor 2", type: "Watersensor"}

{name: "Sensor 2", type: "Watersensor"}

有问题的代码是:

export default function SensorCards() {
  let allCards = [
    {name: 'Sensor 1', type: 'Airsensor'},
    {name: 'Sensor 2', type: 'Watersensor'},
  ];

  for (let i = 0; i < allCards.length; i++) {
    var cardsOnScreen = allCards.map(function (card) {
      return <Card name={allCards[i].name} type={allCards[i].type} />;
    });
  }
  return cardsOnScreen;
}

我一直在尝试将 return 更改为其他内容,因为我认为我的问题就在那里,但是我似乎找不到适合我的情况的替代方案。我的 return 只在对象中 return 保存最后一个对象 x 次。

提前致谢!

替换为:

  for (let i = 0; i < allCards.length; i++) {
    var cardsOnScreen = allCards.map(function (card) {
      return <Card name={allCards[i].name} type={allCards[i].type} />;
    });
  }
  return cardsOnScreen;

有了这个:

    return allCards.map((card) => (
      <Card key={card.name} name={card.name} type={card.type} />
    ));

您的代码中的问题是:

  1. 你正在循环两次,你不需要。
  2. 您正在内部循环中重置 cardOnScreen
  3. 你没有在循环时设置key

试试这个:

export default function SensorCards() {
  let allCards = [
    {name: 'Sensor 1', type: 'Airsensor'},
    {name: 'Sensor 2', type: 'Watersensor'},
  ];
  return (
     <>
       { allCards.map((card) => (
      <Card key={card.name} name={card.name} type={card.type} />
       ))}
     </>
  )
}