React.js 0.12 中的 this.key

IT技术 javascript reactjs
2021-04-26 11:16:55

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

来自React v0.12 文档

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

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

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

还:

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

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

更新

GitHub 上这个问题澄清了很多。感谢HEAP提到它。

1个回答

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

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

引用自上:

您不能再从 Component 实例本身内部访问 this.props.ref 和 this.props.key。所以你需要为这些props使用不同的名称。

一个例子是:

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

然后以this.props.reactKey.