Uncaught TypeError: супервыражение должно быть либо нулевым, либо функцией — на основе моего кода, почему я получаю эту ошибку?

Я пытаюсь настроить модальное окно с помощью React. Я использую код, который более или менее взят из их документации. Я не уверен, почему я получаю эту ошибку: «Uncaught TypeError: Супервыражение должно быть либо нулевым, либо функцией». Я покопался и заметил, что эта ошибка обычно появляется, когда люди забывают использовать заглавную букву «Компонент» при настройке класса — класс Modal расширяет React.Component — но это не моя проблема.

У меня есть React 16.6 и React-dom 16.6 в качестве зависимостей. Возможно, у меня не самая последняя версия React, и это вызывает проблемы? Возможно, в других моих файлах, которые ссылаются на этот модальный режим, происходит что-то еще, что вызывает проблему? В любом случае, у меня нет четкого пути к исправлению этой ошибки, потому что я не знаю, что не так, основываясь на сообщениях об ошибках в инструментах разработчика Chrome. Мой терминал также не выдает никаких сообщений об ошибках. Я потерялся.

import React from "react";
import { createPortal } from "react-dom";

const modalRoot = document.getElementById("modal");

class Modal extends React.Compoment {
    constructor(props) {
        super(props);
        this.el = document.createElement("div");
    }
    componentDidMount() {
        modalRoot.appendChild(this.el);
    }
    componentWillUnmount() {
        modalRoot.removeChild(this.el);
    }
    render() {
        return createPortal(this.props.children, this.el);
    }
} 

export default Modal;

Modal должен автоматически отображаться, как только приложение запускается в браузере (да, я знаю, что Modal может быть довольно раздражающим для пользователей, но я все еще пытаюсь научиться делать его в React)


person Daniel Owens    schedule 26.01.2019    source источник


Ответы (1)


class Modal extends React.Compoment, это твоя ошибка она должна быть Component

person piedra    schedule 26.01.2019