随着版本0.12 this.props.key
的发布在组件内部不再可用,但听起来您可以简单地用this.key
替换它,并且一切都应该按预期工作。
这意味着您需要重命名:someElement.props.key - > someElement.key
但是,当我尝试在我的组件的render()函数中访问this.key
时,我得到undefined
。
请看我的笔来说明问题: http://codepen.io/anon/pen/jaczr?editors=100
此外:
React组件的实例在渲染时在React内部创建。这些实例在后续渲染中重用,可以在组件方法中访问。
我应该如何访问组件的密钥?
更新
有this issue on GitHub澄清了很多。感谢HEAP提及它。
答案 0 :(得分:64)
文档实际推荐的内容(尽管措辞严厉)是您应将key
和ref
视为React的内部内容,并且无法在组件内部访问。如果您需要知道密钥,只需将其作为另一个具有不同名称的属性传递,然后照常在this.props
上访问它。
从上面引用:
您无法再从Component实例本身访问this.props.ref和this.props.key。所以你需要为这些道具使用不同的名称。
一个例子是:
<MyComponent key={foo} reactKey={foo} />
然后以this.props.reactKey
进入内部。