@supeeeee_r_man
Начинающий веб-разработчик

В чем может быть ошибка?

Добрый день!
Подскажите, пожалуйста. Где у меня ошибка ?

import * as React from 'react';
import Dialog from '@material-ui/core/Dialog';

import './index.scss';

export default class Popup extends React.Component {
    public constructor(props): void {
        super(props);
        this.state = {
            open: !!this.props.open,
        };
    }

    getDerivedStateFromProps(nextProps) {
        if (nextProps.open !== this.props.open) {
            this.setState({
                open: nextProps.open,
            });
        }
    }

    public handleClose() {
        this.setState({ open: !this.props.open });
        console.log(handleClose)
    }

    public render(): React.ReactNode {
        return (
            <Dialog onClose={this.handleClose.bind(this)} open={this.props.open} value={this.state.open}>
                <div className="popup">
                    <div className="popup__closer" onClick={this.handleClose.bind(this)} />
                    <div className="popup__content">{this.props.children}</div>
                </div>
            </Dialog>
        );
    }
}


5da881ff45891646797182.png
  • Вопрос задан
  • 159 просмотров
Пригласить эксперта
Ответы на вопрос 2
just_konstantin
@just_konstantin
Ошибка падает внутри функции handleClose. Вы пытаетесь в консоль передать несуществующую функцию. От того и эта ошибка
Ответ написан
Ошибка номер 1 - убери слово паблик
Ошибка номер два - никогда не делай так onClick={this.handleClose.bind(this)}
У тебя на каждый render будет плодится новая функция, лучше сделай этот метод стрелочной функцией
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы