我正在尝试使用React.cloneElement()
向儿童添加道具。但是,由于阵营抱怨渲染孩子没有钥匙,所以我必须键指定给他们:指定要克隆的ReactJS元素的密钥
const extendedChildren = children.map((child, index) => {
const unkeyedElement = React.cloneElement(child, someProps);
unkeyedElement.key = index;
return tmpElement;
});
而且他们呈现:
return (
<div>{extendedChildren}</div>
);
但我一这个错误:
Uncaught TypeError: Cannot assign to read only property 'key' of object '#'
有没有一种更好的方式为孩子分配键?
编辑:
Object.assign({}, unkeyedElement, { key: index })
可以解决这个问题,但我感觉这是一个反模式,因为我把很多精力只是,我并不需要一个密钥。欢迎任何建议。
'Object.assign'不是反模式。这是正确的做法。 –