For my project, I was trying to render the specific doctor details when we click on "View details" button. Just like this -
How can I filter the specific doctor data to render it on Card component on ButtonCl?. Currently I am getting the entire data on card component. And on onClick event, I am calling the navigate function to render the Card component. Due to which I am not able to transfer the specific doctors data
Here's my code -- RoutingController.js
class RoutingController extends React.Component {
constructor() {
super();
this.state = {
doctorsList: [
{
id: 1,
doctorName: 'Alexis Rodriguez',
speciality: 'PULMONOLOGIST',
ratings: 5,
},
{
id: 2,
doctorName: 'Zeph Gonzales',
speciality: 'GENRAL_PHYSCIAN',
ratings: 5,
},
{
id: 3,
doctorName: 'Virginia Wiggins',
speciality: 'Dentist',
ratings: 4,
}
]
}
}
render() {
return (
<Router>
<Routes>
<Route path="/" element={<Home doctorsList={this.state.doctorsList} />} />
<Route path="/doctordetails" element={<ViewDoctorDetails doctorDetails={this.state.doctorsList} />} />
</Routes>
</Router>
);
}
DoctorListComponent.js
function DoctorListFunctional(props) {
return (
<div className="main-container">
{
props.doctorsListArray.map(doc => {
return <div className="doc-container" key={doc.id}>
<Paper elevation={10} style={paperStyle}>
<Grid align='center'>
<div className="doctor-container">
<h3 align='start'>Doctor Name: <span className="grid-item">{doc.doctorName}</span></h3>
</div>
</Grid>
<Grid align='center'>
<div className="doctor-details-container">
<h5 align='start'>Speciality: <span className="grid-item">{doc.speciality}</span> </h5>
<h5 align='start'>Ratings:<Rating name="read-only" value={doc.ratings} readOnly /></h5>
</div>
</Grid>
<Stack
direction="row"
alignItems="flex-end"
spacing={3}
>
<Button className={classes.MuiButtonControlroot} color='primary' variant='contained' onClick={() => onClick()}>
Book Appointment
</Button>
<Button className={classes.MuiButtonControlroot} color='success' variant='contained' onClick={() => {
navigate("/doctordetails");
}}> **Here due to navigate function, I am not able to filter and transfer the specific doctor data to the next card component**
View Details
</Button>
</Stack>
</Paper>
</div>
})
}
</Grid>
</div>
)
}
ViewDoctorDetailsCardComponent.js
function ViewDoctorDetails(props) {
const navigate = useNavigate();
return (
<div className="main-container">
{
props.doctorDetails.map((doctor => {
console.log(doctor);
return (
<div key={doctor.id}>
{doctor.doctorName}
{doctor.speciality}
{doctor.ratings}
</div>
)
}))
}



