eag*_*der 1 javascript reactjs
我正在尝试渲染不带键的JSX的react组件数组。问题不幸的是,当我尝试在数组中设置键时,我遇到了JS错误:
Uncaught (in promise) TypeError: Cannot assign to read only property 'key' of object '#<Object>'
Run Code Online (Sandbox Code Playgroud)
这是代码:
import React, { Component } from 'react';
class Test extends Component {
mapChildObjects = () => {
const { children } = this.props;
let arr = [];
for (let i = 0; i < children.length; i++) {
arr.push(React.createElement(children[i]));
arr[i].key = i;
}
return arr;
}
render() {
return (
<div>
<div className={s.content}>
{this.mapChildObjects()}
</div>
</div>
);
}
}
export default Test
Run Code Online (Sandbox Code Playgroud)
阅读文档后:https : //reactjs.org/docs/react-without-jsx.html,但是无法找到在中添加密钥的示例createElement。
注意:这很好。问题不在于组件的呈现,而在于添加创建要素的键的功能。
正如zzzzBov在评论中提到的那样,它key是一个道具,可以在对象内部作为createElement的第二个参数传递。
例
mapChildObjects = () => {
const { children } = this.props;
return children.map((child, i) => {
return React.createElement(child, {key: i});
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
456 次 |
| 最近记录: |