Как использовать компонент Material UI в React

Я новичок в реагировании на Material UI, и я не могу понять, как использовать их компоненты с их стилями, например. У меня есть этот компонент карты из документации (возьмем, например, карту с ящерицей)

https://material-ui.com/demos/cards/

Как мне использовать его в своем компоненте класса? Если я копирую только рендер, он работает, но не дает того же результата, что и в примере. Что это?

ImgMediaCard.propTypes = {
  classes: PropTypes.object.isRequired,
};

export default withStyles(styles)(ImgMediaCard);

Я пробовал искать в Интернете, но не могу понять, любая помощь приветствуется

Мои занятия

import React, { Component } from "react";
import PropTypes from "prop-types";
import { withStyles } from "@material-ui/core/styles";
import Card from "@material-ui/core/Card";
import CardContent from "@material-ui/core/CardContent";
import CardMedia from "@material-ui/core/CardMedia";
import IconButton from "@material-ui/core/IconButton";
import Typography from "@material-ui/core/Typography";
import SkipPreviousIcon from "@material-ui/icons/SkipPrevious";
import PlayArrowIcon from "@material-ui/icons/PlayArrow";
import SkipNextIcon from "@material-ui/icons/SkipNext";
import Grid from "@material-ui/core/Grid";

export default class Serie extends Component {
  constructor(props) {
    super(props);

    this.state = {
      serie: this.props.serie
    };
  }

  componentDidMount() {}

  render() {
    const { id, title, apiname, description, image, likes } = this.props.serie;
    return (
      <Grid item xs = {4}>
        <Card >
          <div >
            <CardContent >
              <Typography component = "h5" variant = "h5">
                {title}
              </Typography>
              <Typography variant = "subtitle1" color = "textSecondary">
                Mac Miller
              </Typography>
            </CardContent>
            <div>
              <IconButton aria-label = "Previous">
                <SkipNextIcon />
              </IconButton>
              <IconButton aria-label = "Play/pause">
                <PlayArrowIcon />
              </IconButton>
              <IconButton aria-label = "Next">
                <SkipNextIcon />
              </IconButton>
            </div>
          </div>
          <CardMedia
            image = {image}
            height = "140"
            title = " image"
          />
        </Card>
      </Grid>
    );
  }
}

Как выглядит твой класс?

Murat Karagöz 18.10.2018 12:37

Я задаю вопрос?

Leonardo Drici 18.10.2018 12:38

В чем собственное отличие от примера? Можете поделиться скриншотами? И для решения код, который вы используете - Как вы используете карту в рендере? Какой стиль вам придают?

Jonathan Stellwag 18.10.2018 12:38

В этом примере нет большой разницы, но я не могу понять, как это работает

Leonardo Drici 18.10.2018 12:42
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
5
4
3 683
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Прежде всего, это props, пришедший из withStyles hoc. styles - это функция, в которой вы определяете свой стиль css. Итак, убедитесь, что вы все правильно импортируете. В переменной styles это также может быть чистый объект, что означает, что это не обязательно должна быть функция.

// import statements

const styles = theme => ({
    "myCustomClass": {
        fontFamily: "Arial"
    }
})

class App extends React.Component {
    state = {
        ...
    }

    render () {
        const { classes } = this.props;

        return <div className = {classes.myCustomClass}>My custom class</div>
    }
}

export default withStyles(styles)(App);

Отличный материал, но как мне создать экземпляр компонента, стилизованного таким образом, в другом файле .js? Кажется, нигде не найду такого примера.

ThePartyTurtle 10.07.2019 22:34

Ааа .. Что ты имеешь в виду? Вы хотите использовать один и тот же стиль для разных компонентов? Если это вопрос, может быть, вы хотите создать функцию в отдельном файле, который возвращает объект стиля, и импортировать его в нужный компонент? Если вопрос не в этом, не могли бы вы предоставить более подробную информацию.

Kyaw Siesein 12.07.2019 06:29

Оказывается, я совершенно неправильно понял синтаксис «экспортировать по умолчанию с помощью стилей (стилей) (приложение);» ха-ха. Я думал, что для использования компонента нужно вызвать функцию с параметром стиля. Я не понимал, что вы можете использовать компонент одинаково, независимо от подхода к стилю высокоуровневых компонентов или хуков. Я не использовал JS пару лет и не узнал некоторые элементы синтаксиса. Приносим извинения за недоразумение - этот пример отлично работает!

ThePartyTurtle 12.07.2019 19:39

@ThePartyTurtle рада, что это помогло :)

Kyaw Siesein 13.07.2019 08:45

Другие вопросы по теме