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

React.js 0.12中的this.key

穆飞星
2023-03-14
问题内容

随着版本0.12的发布,this.props.key组件内部不再可用,但是听起来您可以简单地用替换它,this.key并且一切都将按预期工作。

从React v0.12docs:

这意味着您需要重命名:someElement.props.key-> someElement.key

但是,当我尝试this.key在组件的render()函数中访问时,出现了undefined

请参阅我的笔来说明问题:http :
//codepen.io/anon/pen/jaczr?editors=100

也:

渲染时在React内部创建一个React Component的实例。这些实例将在后续渲染中重用,并且可以在您的组件方法中进行访问。

我应该如何访问组件的密钥?

更新

GitHub上存在这个问题,这可以说明很多。感谢HEAP提及它。


问题答案:

文档的实际建议(尽管措辞不佳)是您应该将keyref视为React的内部组件,并且不能在组件内部访问。如果您需要知道密钥,只需将其作为另一个具有不同名称的属性进行传递,然后this.props照常访问即可。

http://facebook.github.io/react/blog/2014/10/16/react-v0.12-rc1.html#breaking-
change-key-and-ref-removed-from-
this.props

从上面引用:

您不再可以从Component实例本身内部访问this.props.ref和this.props.key。因此,您需要为这些道具使用其他名称。

一个例子是:

<MyComponent key={foo} reactKey={foo} />

然后以进入内部this.props.reactKey



 类似资料:
  • 我使用子JPanel构造JScrollPane,然后尝试将JScrollPane添加到父JPanel中,希望有一个可滚动的自定义JPanel。 我有一个大的细白线前面的所有我的组件,他们是没有滚动。有什么想法吗?

  • 我已经为android Studio创建了一个webview应用程序。但没有加载web URL。错误为NET::ERR_ACCESS_DENIED。有谁能帮忙吗

  • 我有一个使用Java Version8的Spring和Maven的项目。当我运行maven update时,它适用于Java9或更高版本,当我编译它时,它适用于Java8。我注意到了这一点,因为用Maven更新会将一个特定的类更改为Java9,而我无法导入这个类。 这个类是:javax.annotation.generated(Java8)。 这是要导入的类。但是,当我进行maven更新时,文件的

  • 当应用程序启动EncryptionBootstrapConfiguration无法自动装配我的自定义TextEncryptor-https://github.com/spring-cloud/spring-cloud-commons/blob/cde7c7f3118382490c28776f66e0a56f248141fd/spring-cloud-context/src/main/java/or

  • 我有一个问题,找出我的源代码中的错误。 有什么办法可以解决它吗? 我的代码中抛出了“ArrayIndexOutOfBoundsException”,但我无法找到它的位置。 android studio中的logcat:

  • RISC-V 与中断相关的寄存器和指令 [info] 回顾:RISC-V 中的机器态(Machine Mode,机器模式,M 模式) 是 RISC-V 中的最高权限模式,一些底层操作的指令只能由机器态进行使用。 是所有标准 RISC-V 处理器都必须实现的模式。 默认所有中断实际上是交给机器态处理的,但是为了实现更多功能,机器态会将某些中断交由内核态处理。这些异常也正是我们编写操作系统所需要实现的