React.js中的This.key 0.12

时间:2014-10-30 15:26:09

标签: javascript reactjs

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

来自React v0.12 docs

  

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

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

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

此外:

  

React组件的实例在渲染时在React内部创建。这些实例在后续渲染中重用,可以在组件方法中访问。

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

更新

this issue on GitHub澄清了很多。感谢HEAP提及它。

1 个答案:

答案 0 :(得分:64)

文档实际推荐的内容(尽管措辞严厉)是您应将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进入内部。