【发布时间】:2021-06-13 07:28:50
【问题描述】:
我想在点击按钮时在新页面上显示与餐厅相关的项目。
This is how the home page looks when displaying the restaurant component.
This is the directory of my components.
This is how the data is stored for a restaurant
在这个 Restaurant.js 中,我想将它链接到按钮行代码所在的“/restaurantdetails”。但是我如何传递餐厅信息?我应该重新安排任何文件吗?请提供一些最佳方法的指导
import React from "react";
import useStyles from "./styles";
import { Card, CardActions, CardContent, CardMedia, Button, Typography } from "@material-ui/core";
import ThumbUpAltIcon from "@material-ui/icons/ThumbUpAlt";
import DeleteIcon from "@material-ui/icons/Delete";
import MoreHorizIcon from "@material-ui/icons/MoreHoriz";
import moment from "moment";
import { Link } from "react-router-dom";
const Restaurant = ({ restaurant, setCurrentId }) => {
// Style classes
const classes = useStyles();
return (
// Card Class
<Card className={classes.card}>
{/* Restaurant Image*/}
<CardMedia className={classes.media} image={restaurant.image} title={restaurant.title} />
{/* Overlay restaurant name with Button for Restaurant details*/}
<div className={classes.overlay}>
{/*I WANT TO LINK TO RESTAURANTDETAILS TO DISPLAY THE ITEMS BUT HOW? */}
<Button component={Link} to="/restaurantdetails:" variant="contained">
<Typography variant="h6">{restaurant.name}</Typography>
</Button>
{/* <Typography variant="body2">{restaurant.description}</Typography> */}
</div>
{/* Edit Restaurant Button */}
<div className={classes.overlay2}>
<Button
style={{ color: "white" }}
size="small"
onClick={() => setCurrentId(restaurant._id)}
>
<MoreHorizIcon fontSize="default" />
</Button>
</div>
{/* Tags maybe add */}
<div className={classes.details}>
<Typography variant="body2" color="textSecondary" component="h2">
tags maybe
</Typography>
</div>
{/* Description of Restaurant */}
<Typography className={classes.title} gutterBottom variant="h5" component="h2">
{restaurant.description}
</Typography>
{/* Details of Restaurant */}
<CardContent>
<Typography variant="body2" color="textSecondary" component="p">
{restaurant.city}, {restaurant.street}
</Typography>
</CardContent>
<CardActions className={classes.cardActions}>
{/* Like */}
<Button size="small" color="primary" onClick={() => {}}>
<ThumbUpAltIcon fontSize="small" />
Like
</Button>
{/* Delete */}
<Button size="small" color="secondary" onClick={() => {}}>
<DeleteIcon fontSize="small" />
Delete
</Button>
</CardActions>
</Card>
);
};
export default Restaurant;
【问题讨论】:
-
也许我可以将餐厅 ID 发送到 'restaurantdetails:ID' 组件,但如何?
标签: javascript reactjs express react-redux react-router