У меня есть компонент с некоторым списком деталей. В каждом списке в компоненте есть кнопка «Подробности». когда пользователь нажимает на кнопку. Он отобразит дополнительную информацию для списка. Здесь я использую Material-Ui с реакцией, и для этой цели я импортировал компонент Collapse. Итак, как вы видите мой код ниже, когда я нажимаю кнопку «Детали» в одном списке, он открывает детали для всего списка. Я хочу только открыть список, нажимаю. Пожалуйста, проверьте мой код ниже
Заранее спасибо.
import React, { Component } from 'react';
import Collapse from '@material-ui/core/Collapse';
import Button from '@material-ui/core/Button';
class Collapsed extends Component {
constructor(props){
super(props);
this.state = {
expanded: {},
details: [
{
id: 0,
name: 'Tony Stark',
role: 'Iron Man'
},
{
id: 1,
name: 'Steve Rogers',
role: 'Captain America',
},
{
id: 2,
name: 'Thor',
role: 'God of Thunder'
}
]
}
}
handleExpandClick = (id) => {
const expended = this.state.expended;
expended[id] = expended.hasOwnProperty(id) ? !expended[id] : true
this.setState({ expended });
}
render() {
const { details, expanded } = this.state;
return (
<div>
{details.map((detail)=>(
<div key={detail.id}>
{detail.name}
<Button
variant="contained"
disableRipple
onClick={() => this.handleExpandClick(detail.id)}
aria-expanded={expanded}
aria-label="Show more"
>
Details
</Button>
<Collapse in={expanded[detail.id]} timeout="auto" unmountOnExit>
{detail.role}
</Collapse>
</div>
))}
</div>
)
}
}
export default Collapsed