当前位置: 首页 > 知识库问答 >
问题:

React unique key-索引和ID不是唯一的密钥属性

谢运良
2023-03-14

我不明白我在列表中唯一的键有什么问题。我有上述错误:

警告:列表中的每个孩子都应该有一个唯一的“键”道具。检查StockDataTable的呈现方法

这是涉及的代码部分:

const tBody = (
    Object.values(dataItems.dataItems).map(item =>
      <>
        <tr key={item.id}>
          <td>
            {item.name}
          </td>
          <td>
            <img src={item.image} alt='' />
          </td>
          <td>
            {item.quantity}
          </td>
          <td>
            {item.price}
          </td>
          <td>
            {item.dueDate}
          </td>
          <td>
            {item.imperative}
          </td>
          <td>
            {item.comment}
          </td>
          <td>
            <Button
              variant='link'
              onClick={event => handleEpandRow(event, item.id)}
            >
              {
                expandState[item.id]
                  ? 'Hide' : 'Show'
              }
            </Button>
          </td>
        </tr>
        <>
          {
            expandedRows.includes(item.id)
              ? <tr}>
                <td colspan='6'>
                  <div style={{ backgroundColor: '#343A40', color: '#FFF', padding: '10px' }}>
                    <h2> Details </h2>
                    <ul>
                      <li>
                        <span><b>Name:</b></span> {' '}
                        <span> {item.name}</span>
                      </li>
                      <li>
                        <span><b>Image:</b></span> {' '}
                        <span> {item.image}</span>
                      </li>
                      <li>
                        <span><b>Quantity:</b></span> {' '}
                        <span> {item.quantity} </span>
                      </li>
                      <li>
                        <span><b>Price:</b></span> {' '}
                        <span> {item.price} </span>
                      </li>
                      <li>
                        <span><b>Due date:</b></span> {' '}
                        <span> {item.dueDate} </span>
                      </li>
                      <li>
                        <span><b>Imperative:</b></span> {' '}
                        <span> {item.imperative} </span>
                      </li>
                      <li>
                        <span><b>Comment:</b></span> {' '}
                        <span> {item.comment} </span>
                      </li>
                    </ul>
                  </div>
                </td>
              </tr>
              : null
          }
        </>
      </>
    )
  )

  return (
    <Container>
      <Row>
        <Col>
          <h1> Stock items</h1>
        </Col>
      </Row>
      <Row>
        <Col sm={12}>
          <Table responsive variant='dark'>
            <thead>
              <tr>
                <th />
                <th>Name</th>
                <th>Image</th>
                <th>Quantity</th>
                <th>Price</th>
                <th>Due date</th>
                <th>Imperative</th>
                <th>Comment</th>
              </tr>
            </thead>
            <tbody>
              {tBody}
            </tbody>
          </Table>
        </Col>
      </Row>
    </Container>
  )

我试图使用索引(即使它被删除),但我仍然有错误消息。我不知道我是否把钥匙放在正确的地方。item.id必须使用几次,但我不知道为什么。


共有1个答案

谷永贞
2023-03-14

如果您将设置为第一个JSX标记而不是第二个

Object.values(dataItems.dataItems).map(item => (
  <React.Fragment key={item.id}>
    <tr>
    ... // your code
    </tr>
  </React.Fragment>
));

 类似资料:
  • CreateIndexes 根据struct中的tag来创建索引 CreateUniques 根据struct中的tag来创建唯一索引

  • 问题内容: 下面是我的代码,我只想显示我在sqlite数据库中插入的数据到文本视图,但是我遇到这个错误,说id不是唯一的。 这是我的整个Java代码。谢谢 :) 问题答案: 好吧,我认为这个项目在您首次运行时效果很好。当您第二次运行它时,由于是您的ID为1的行已被插入到您的数据库中,因此会出现错误。 要消除错误,请执行以下任一操作:

  • 我创建下表: 我的问题是我是否需要这句话: ? 是否自动对创建索引?

  • 问题内容: 我有一个字段,例如,在表中应该是唯一的。 使用Spring / Hibernate验证进行验证的最佳方法是什么? 问题答案: 一种可能的解决方案是创建自定义约束(和相应的验证器)。并要查找数据库中的现有记录,请提供(或Hibernate)to 的实例。 EntityManagerAwareValidator ConstraintValidatorFactoryImpl 唯一键 Uniq

  • 我想为dynamodb中的订单创建一个表,每个订单由(UserID、date、Unique ID、products和total)组成,我想使用按日期排序的UserID查询特定用户的订单,我想知道如何选择分区键?它必须是独一无二的吗?如果是,我如何才能使它独一无二?在mongodb中,我会根据用户ID共享订单。如何使用dynamodb实现同样的效果?

  • 我知道如果数据是唯一的,理论上唯一索引会比非唯一索引快。 因为唯一索引能够提供更多信息,并让查询优化器选择更有效的执行计划。 我正在做一些测试,想证明唯一索引可能比执行计划中的非唯一索引更好,但结果显示它们是相同的。。。 我创建了一个表和两个索引(< code>IX_ID_T3不唯一,< code>UIX_ID_T3唯一),然后插入了1000000个样本行。 插入数据后,我运行< code >真空