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 '#'
子どもに鍵を割り当てるより良い方法はありますか?
EDIT:
Object.assign({}, unkeyedElement, { key: index })
は、問題を解決することができますが、私はちょうど私が必要としないキーのための多くの努力を入れて、それはアンチパターンだ感じています。どんな提案も歓迎されます。
'Object.assign'は反パターンではありません。それは正しい方法です。 –