«Uncaught TypeError: Super expression должно быть либо null, либо функцией» - исходя из моего кода, почему я получаю эту ошибку? - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь установить модальный режим с помощью React. Я использую код, который более или менее взят из их документов. Я не уверен, почему я получаю эту ошибку: «Uncaught TypeError: Super выражение должно быть либо нулевым, либо функцией». Я осмотрелся и заметил, что эта ошибка обычно появляется, когда люди забывают использовать «Компонент» с заглавной буквы при настройке класса - класс 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;

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

1 Ответ

0 голосов
/ 26 января 2019

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

...