У меня есть такие данные
0: {rowid: "4b531532a5a9", groups: "Group1", descriptions: "Item1"......}
1: {rowid: "e55315ccabb5", groups: "Group2", descriptions: "Item2"......}
2: {rowid: "f27135283089", groups: "Group1", descriptions: "Item3"......}
Мне нужно показать это вот так https://codesandbox.io/s/material-demo-fwi6f?file= / demo. js
Итак, во-первых, когда Я получаю данные из API, сначала я делаю это ниже (groupBy - это метод loda sh, который передает данные и группы по свойству)
let list = groupBy(response.data, "groups");
this.setState({
Groups: Object.keys(list),
BackOffice: response.data,
});
Таким образом я получаю все имена групп и данные, сохраненные в состоянии . Затем у меня есть код ниже, чтобы создать полный список, но я не уверен, почему он не работает ..
GetBackOffice = () => {
return (
<Grid item xs={12}>
<List dense style={{ padding: 0, margin: 0 }}>
{this.GetList()}
</List>
</Grid>
);
};
GetList = () => {
let list = "";
this.state.Groups &&
this.state.Groups.map((EachGroup) => {
let CurrentData = this.state.BackOffice.filter(
(row) => row.groups === EachGroup
);
list += CurrentData.map((row) => (
<ListItem>
<ListItemText primary="1" />
<ListItemSecondaryAction>
<IconButton edge="end" aria-label={row.descriptions}>
<DownloadIcon />
</IconButton>
</ListItemSecondaryAction>
</ListItem>
));
});
return list;
};