【问题标题】:Confusion about bootstrap Cards with React对带有 React 的引导卡的困惑
【发布时间】:2022-01-16 00:59:56
【问题描述】:

我有以下代码:

import { Card, CardGroup } from "react-bootstrap";

function Woodcutting() {
  const trees = [
    {
      uID: "tree-normal",
      name: "Normal Tree",
      level: 1,
      interval: 3000,
      xp: 10,
      media: "tree.png",
    },
    {
      uid: "tree-oak",
      name: "Oak Tree",
      level: 5,
      interval: 4000,
      xp: 15,
      media: "tree.png",
    },
    {
      uID: "tree-magic",
      name: "Magic Tree",
      level: 10,
      interval: 5000,
      xp: 20,
      media: "tree.png",
    },
  ];

  function onCardClick(event) {
    console.log(event.target.value);
  }

  return (
    <CardGroup>
      {trees.map((tree) => (
        <Card
          style={{ width: "18rem" }}
          onClick={onCardClick}
          key={tree.uID}
          value={tree.uID}
          style={{ cursor: "pointer" }}
        >
          {/* <Card.Img variant="top" src="tree.png" /> */}
          <Card.Body>{tree.name}</Card.Body>
        </Card>
      ))}
    </CardGroup>
  );
}

export default Woodcutting;

我对一些事情有点困惑。

首先,即使我设置了“key”道具,我仍然会在控制台中收到警告说“列表中的每个孩子都应该有一个唯一的“key”道具。”

其次,即使我设置了“值”属性,当我在每次单击时登录到控制台时,我都会得到“未定义”。有人可以帮忙吗?

【问题讨论】:

    标签: reactjs bootstrap-4


    【解决方案1】:

    1)第二个对象的键“uID”输入错误导致键问题

    2) Card 可能没有 value 属性。 而且它不是表单元素

    将您的 onClick 替换为:

    onClick={()=>onCardClick(tree.uID)}
    

     function onCardClick(uID) {
        console.log(uID);
      }
    

    【讨论】:

    • 非常感谢,像你说的那样更新 onClick 解决了这个问题。
    • 即使在更正了错字之后,我仍然收到“key”的警告,有什么想法吗?
    • 您是否对上面提供的相同数据有问题,或者您正在使用不同的数据实现?另外,您需要交叉检查警告是针对此组件还是其他组件
    • @Cypher236 你的问题解决了吗?
    猜你喜欢
    • 2013-06-19
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 2020-12-11
    • 2014-10-03
    • 1970-01-01
    • 2018-07-07
    • 2019-08-26
    相关资源
    最近更新 更多