必须为 Typescript 和 Material UI 的布尔属性设置值

Won*_*lly 3 typescript reactjs material-ui typescript3.0

我从 Material UI 中复制并粘贴了一段非常简单的代码,我试图将其与 Typescript 一起使用。我有一个MediaCard组件(重命名为DisplayCard)。

当我编译代码时,我收到此错误:(34,23): Value must be set for boolean attributes

我在弄清楚这个错误的根源时遇到了一些困难,因为我不确定需要设置哪个属性值......

这是代码:

应用程序.tsx

import * as React from "react";
import DisplayCard from "./components/DisplayCard";

const App = () => {
  return <DisplayCard />;
};

export default App;
Run Code Online (Sandbox Code Playgroud)

显示卡.tsx

import * as PropTypes from "prop-types";
import * as React from "react";

import { createStyles, withStyles } from "@material-ui/core/styles";

import Button from "@material-ui/core/Button";
import Card from "@material-ui/core/Card";
import CardActionArea from "@material-ui/core/CardActionArea";
import CardActions from "@material-ui/core/CardActions";
import CardContent from "@material-ui/core/CardContent";
import CardMedia from "@material-ui/core/CardMedia";
import Typography from "@material-ui/core/Typography";

const styles = createStyles({
  card: {
    maxWidth: 345
  },
  media: {
    height: 140
  }
});

function DisplayCard(props: any) {
  const { classes } = props;
  return (
    <Card className={classes.card}>
      <CardActionArea>
        <CardMedia
          className={classes.media}
          image='/static/images/cards/contemplative-reptile.jpg'
          title='Contemplative Reptile'
        />
        <CardContent>
          <Typography gutterBottom variant='h5' component='h2'>
            Lizard
          </Typography>
          <Typography component='p'>
            Lizards are a widespread group of squamate reptiles, with over 6,000
            species, ranging across all continents except Antarctica
          </Typography>
        </CardContent>
      </CardActionArea>
      <CardActions>
        <Button size='small' color='primary'>
          Share
        </Button>
        <Button size='small' color='primary'>
          Learn More
        </Button>
      </CardActions>
    </Card>
  );
}

DisplayCard.propTypes = {
  classes: PropTypes.object.isRequired
};

export default withStyles(styles)(DisplayCard);
Run Code Online (Sandbox Code Playgroud)

Rob*_*eed 5

我认为它指的是这一行<Typography gutterBottom variant='h5' component='h2'>

当您设置一个属性时,gutterBottom它会被推断为gutterBottom={true}. 由于您使用的是 TypeScript,诸神会因您不明确而生气,因此请尝试显式设置属性。

<Typography gutterBottom={true} variant='h5' component='h2'>
Run Code Online (Sandbox Code Playgroud)

希望这能消除错误。