React.js中的This.key 0.12

Pie*_*tup 44 javascript reactjs

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

React v0.12 docs:

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

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

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

也:

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

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

UPDATE

在GitHub上这个问题澄清了很多.感谢HEAP提及它.

Mik*_*ver 64

什么文档实际推荐(虽然它的措辞严重),是你应该把keyref内部反应和组件内无法访问.如果您需要知道密钥,只需将其作为另一个具有不同名称的属性传递,然后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} />
Run Code Online (Sandbox Code Playgroud)

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

  • 对!更好的是将附加支柱命名为对您的组件有意义的名称.我们有一个`<EmailSubscription key = {...} />`组件,它使用`this.props.key`来指定在AJAX请求中发送给服务器的密钥 - 我们将其更改为`<EmailSubscription subscriptionKey = { ...} />`以清楚说明服务器使用了什么密钥以及用于React协调的密钥.(有时这些实际上有所不同!) (7认同)