Первое, что нужно понять, это как работают компоненты class based
и functional
. Кроме того, когда и где вы используете его.
Короче говоря, я могу сказать, что функциональные компоненты используются для представления статических данных. И на основе классов Используются для динамического источника данных.
Вот несколько ссылок для справки.
Компонент на основе класса и функциональные компоненты. В чем разница (Reactjs) и Функциональные компоненты реагирования и классические компоненты
Чтобы ответить на ваш конкретный вопрос.
import React, { Component } from 'react';
import { withStyles, makeStyles } from '@material-ui/styles';
const useStyles = makeStyles(theme => ({
typography: {
padding: theme.spacing(2),
},
}));
class SimplePopper extends Component {
constructor(props){
super(props)
this.state = { anchorEl: null, setAnchorEl: null }; <--- Here see the state creation
this.handleClick= this.handleClick.bind(this);
}
handleClick(event) {
const { anchorEl, setAnchorEl } = this.state; <--- Here accessing the state
setAnchorEl(anchorEl ? null : event.currentTarget);
}
render() {
const { anchorEl, setAnchorEl } = this.state; <--- Here accessing the state
const open = Boolean(anchorEl);
const id = open ? 'simple-popper' : null;
const { classes } = this.props;
return (
<div>
............Rest of the JSX............
</div>
);
}
}
export default withStyles(useStyles)(SimplePopper);
Обратите внимание, что здесь я использовал withStyles
, чтобы перенести стиль в ваш компонент. Так что стили будут доступны как classNames
.
Изучите разницу и переведите остальные
Этого достаточно для начала.