乐闻世界logo
搜索文章和话题

ReactJS 如何访问组件的“ key ”属性

7 个月前提问
5 个月前修改
浏览次数29

1个答案

1

在 React 中,key 属性是由 React 自己管理的特殊属性,它用来在列表中的元素做身份标识,帮助 React 确定哪些元素改变了,比如被添加或删除。这样可以提升列表渲染的效率。

然而,你不能通过常规的 props 访问到组件的 key 属性。key 并不是传给组件的一个属性,而是由 React 在渲染过程中使用,因此在组件的内部你无法访问到这个 key 值。

以下是一个列表渲染的例子,其中的 key 用于优化渲染过程,但是你不能在 MyComponent 组件内部直接访问到 key

jsx
const myList = items.map((item) => { // 这里设置 key 属性,但它不会传入 MyComponent 作为 prop return <MyComponent key={item.id} {...item} />; });

MyComponent 组件内部,尝试通过 this.props.keyprops.key 来访问 key 是无效的。

如果你需要在组件内部访问到类似 key 的值,你应该通过一个不同名称的 prop 明确传递这个值:

jsx
const myList = items.map((item) => { // 将需要的值作为另一个名为 id 的 prop 明确传入 return <MyComponent key={item.id} id={item.id} {...item} />; });

MyComponent 内部,你可以通过 this.props.idprops.id(取决于是类组件还是函数组件)来访问传递的 id 值。

2024年6月29日 12:07 回复

你的答案