当前位置: 首页 > 面试题库 >

如何从reactjs组件访问“ key”属性

傅志用
2023-03-14
问题内容

如何访问key组件的属性。我以为会在this.props中,但事实并非如此。

例如

<ProductList
    key = {list.id}
    listId = {list.id}
    name = {list.name}
    items = {list.items}
/>

并在产品列表中

console.log(this.props)

退货

Object {listId: "list1", name: "Default", items: Array[2]}

没有任何关键属性。我可以创建另一个属性并为其分配相同的值,但是由于key属性已经被使用,因此这似乎是多余的。

另外,键属性在整个组件中是否必须是唯一的,还是仅在其要呈现的循环集合中是唯一的?


问题答案:

key属性由React在后台使用,并且不会暴露给您。您将要使用自定义属性并将该数据传递进来。我建议使用语义上有意义的属性名称;key只是为了在对帐期间帮助识别DOM节点,因此拥有另一个称为属性的属性listId是有意义的。

key属性不必对于整个组件都是唯一的,但是我认为它对于您所在的嵌套级别(因此通常是循环或集合)应该是唯一的。如果React检测到重复key的问题(在开发版本中),它将引发错误:

警告:flattenChildren(…):遇到两个具有相同密钥的孩子.$a。子键必须是唯一的;当两个孩子共享一个密钥时,将仅使用第一个孩子。



 类似资料:
  • 问题内容: 为什么我不能从ReactJS的“外部”访问组件方法?为什么不可能,有什么办法解决呢? 考虑一下代码: 问题答案: React通过attribute提供了一个您要尝试执行的操作的接口。给组件分配一个,其属性将是您的自定义组件: 注意 :仅根据下面的文档,如果子组件被声明为类,则此方法才有效:https : //facebook.github.io/react/docs/refs-and-

  • 假设我们有一个简单的Spring条件,它必须与属性文件中的文件属性相匹配: 不幸的是,上面提到的方法调用都没有返回在属性文件中定义的真实属性。相反,当我为另外两个调用getProperty方法和“${my.property}”字符串时,我得到了null(显然,该属性尚未解析)。

  • 我正在做一个GUI任务,我遇到了一个我无法解决的问题。我有一个带有多个JPanels的JFrame,其中一个JPanels包含一个带有多个JPanels的CardLayout。由于我们有更多的人在这个项目中工作,我们决定为CardLayout中的每个面板创建一个单独的类(扩展JPanel)。 问题是从JPanel类访问JFrame的组件。 举个例子,我在JFrame中的某个地方有一个JLabel,

  • 问题内容: 如果我有一个在其状态上设置了属性的react组件: 是否可以从此处删除? 该replaceState方法看起来像明显的方法来尝试,但它至今已贬值。 问题答案: 您可以设置到,像这样 更新资料 先前的解决方案只是从中删除价值而 存在的技能,如果您需要从中完全删除密钥,则可能的解决方案之一可以是与一位父母同住 ,就像这样

  • 我有一个核心项目,处理常见问题并应用方面,称为“common”。服务项目将此核心项目用于常见流程。 我必须在“通用”中管理异常处理,并且我必须从通用的属性文件中读取消息。但是服务也可以有自定义消息。 所以我把一条消息放在共同点上 } 共同点是,我有common-messages.properties 允许将服务命名为service\u 1,该服务依赖于Common。 Service\u 1还有Se

  • 如何在孩子的标签和函数sayhello中访问家长的道具? (我可以访问兄弟姐妹和孩子,而无需将道具作为参数传递,但不能访问家长) \uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 和(远离本例) 如果此代码引用了 如何访问家长的道具 如果将Chi