我可以在 CardActionArea 中使用 react router Link 吗?

Mar*_*sai 10 reactjs react-router material-ui

我可以在 CardActionArea 中使用 react router Link 吗?

这是我的 css 损坏的代码,因为我如何使用链接组件

import { BrowserRouter as Router, Route, Link } from "react-router-dom";
    <Link to="/Blog">
      <CardActionArea component="div" disableRipple>
        <CardMedia
          className={classes.media}
          image="images/marmik.jpg"
          title="Marmik Desai"
        />
        <CardContent>
          <Typography gutterBottom variant="h5" component="h2">
            Marmik Desai
          </Typography>
          <Typography variant="body2" color="textSecondary" component="p">
            I am front end developer.
          </Typography>
        </CardContent>
      </CardActionArea>
    </Link>
Run Code Online (Sandbox Code Playgroud)

如果我在 cardactionarea 中使用下面的 href="" 它将刷新页面。我不想刷新页面。

    <CardActionArea href="/Blog" disableRipple>
Run Code Online (Sandbox Code Playgroud)

找到的解决方案如果我使用链接作为 CardActionArea 我需要覆盖链接 css。我找到了以下解决方案。

import { BrowserRouter as Router, Route, Link } from "react-router-dom";
<CardActionArea component={Link} to="/Blog"> 
Run Code Online (Sandbox Code Playgroud)

Cod*_*rez 15

import { Link as RouterLink } from 'react-router-dom';
import { CardActionArea } from '@material-ui/core';


<CardActionArea component={RouterLink} to={'/Blog'}>
    // ...
</CardActionArea >


Run Code Online (Sandbox Code Playgroud)

  • 嘿!虽然此代码片段可能是解决方案,但[包括解释](https://meta.stackoverflow.com/questions/392712/explaining-entirely-code-based-answers)确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而那些人可能不知道您建议代码的原因。 (2认同)

小智 5

您可以像这样使用,将CardActionArea组件放入Link

return (
        <Card className={classes.root}>
            <Link to="/Blog" component={CardActionArea}>
                <CardMedia
                    className={classes.media}
                    image={props.thumbnail}
                    title={props.thumbnail}
                />
                <CardContent>
                    <Typography gutterBottom variant="h6" component="h6">
                        {props.title}
                    </Typography>
                    <Typography variant='caption' component={"sm"}>
                        Update at {(Date(props.date).substring(0, 16))}
                        on {props.category}
                    </Typography>
                    <Divider />
                    <Typography variant="body2" component="p">
                        {props.subtitle}
                    </Typography>
                </CardContent>
            </Link>
            <CardActions>
                {!props.isAdmin && <Link to={props.admin_url} component={Button} size="small" >Edit</Link>}
                <Link to={props.public_url} component={Button} size="small" >Readmore</Link>
            </CardActions>
        </Card>
    );
Run Code Online (Sandbox Code Playgroud)


Ten*_*ter 4

文档 CardActionArea中获取两个道具类和子级,将链接添加为子级。

<CardActionArea component="div" disableRipple>
  <Link to="/Blog">
    <CardMedia
      className={classes.media}
      image="images/marmik.jpg"
      title="Marmik Desai"
    />
    <CardContent>
      <Typography gutterBottom variant="h5" component="h2">
        Marmik Desai
  </Typography>
      <Typography variant="body2" color="textSecondary" component="p">
        I am front end developer.
  </Typography>
    </CardContent>
  </Link>
</CardActionArea>
Run Code Online (Sandbox Code Playgroud)