[英]Can you add a key to a React JSX Element after it's instantiated?
给定以下内容:
function generateWrapper(...elements) {
return (
<div>
{...elements}
</div>
);
}
ReactDOM.render(
generateWrapper(
<MyElement name="first" />,
<MyElement name="second" />,
),
document.getElementById("app"),
);
React会正确地抱怨我没有为包装div的每个子级添加键属性。 我怎样才能做到这一点? 还是这与反应发展精神背道而驰? 感谢您提前提出任何答案!
PS:是的,我看过类似的问题,但它似乎是针对不使用JSX的用户
PPS:我确实意识到我只能在first
和second
MyElement
添加一个密钥,但这是我试图避免的事情
编辑:更改代码以更适合我的情况
看一下React.cloneElement 。 您可以使用它来在generateWrapper
方法中创建并附加key属性。
function generateWrapper(...elements) {
return (
<div>
{
elements.map(element =>
React.cloneElement(element, { key: 'your-unique-key-here' })
}
</div>
);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.