let clusters = this.state.clusterList;
const SyncTree = () => (
Object.keys(clusters).map((item) => {
<Tree label={<div className='treeRoot'><IconButton icon={<InfoOutlineIcon />} onClick={() => this.setState({setInfoOpen: true, data: {header: clusters[item].name + " [" + clusters[item].cluster + "]", objectId: clusters[item].cluster, object: "cluster" }})} classPrefix={'btn-icon btn-tree'} />{clusters[item].name}<Checkbox style={treeCheckbox}/></div>}>
</Tree>
})
);
С учетом того, что clusters имеет структуру [{},{},{}].
зачем так сложно?
Object.keys(clusters) ?
А как проще?
без Object.keys(…)
Без он выдает e.map is not a function.
clusters вероятно
Это то, что он выдает в консоли. Ошибка.
Проверяй данные на наличие перед рендером
Сам объект выглядит так: Array [ {…} ] 0: Object { cluster: "cddd1531-8a5c-4e25-ad9c-3866a40e798c", host: "cluster1.localhost", port: "1541", … } 1: Object { cluster: "cddf1332-8e2d-1a12-fd0c-2451f41e792d", host: "cluster2.localhost", port: "1541", … }
так, а какие keys для массива проще тако: const SyncTree = () => ( clusters.map((item) => { <Tree label={<div className='treeRoot'><IconButton icon={<InfoOutlineIcon />} onClick={() => this.setState({setInfoOpen: true, data: {header: item.name + " [" + item.cluster + "]", objectId: item.cluster, object: "cluster" }})} classPrefix={'btn-icon btn-tree'} />{item.name}<Checkbox style={treeCheckbox}/></div>}> </Tree> }) );
будет массив undefined-ов
Обсуждают сегодня