React HOC: TypeError: невозможно вызвать класс как функцию

Я следую руководству это, чтобы попытаться написать компонент React более высокого порядка.

Я пытаюсь создать компонент окна многократного использования, который будет действовать как контейнер для других компонентов, обеспечивая стиль и поведение.

Я тестирую его с компонентом Player, который пока просто возвращает компонент ReactPlayer из пакета npm response-player.

import React, { Component } from 'react';


function Window(WrappedComponent){
    return class extends Component{
        render(){
            return (
                <div className = "window">
                    <WrappedComponent/>
                </div>
            );
        }
    }
}

export default Window();

Это код для компонента плеера

import React, { Component } from 'react';
import ReactPlayer from 'react-player';
import Window from './Window.js'

class Player extends Component {
    render () {
        return <ReactPlayer url='https://thewikihow.com/video_iIKKvG0_KdM' playing />
    }
}

const PlayerWindow = Window(Player);

export default PlayerWindow;
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
2 534
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

заменить export default Window(); на export default Window;

Снимаем кронштейны с export default Window();
В качестве альтернативы, при вызове функции вы можете написать

> export const Window = function Window(WrappedComponent){
>     return class extends Component{
>         render(){
>             return (
>                 <div className = "window">
>                     <WrappedComponent/>
>                  </div>
>             );
>         }
>     } 
> }

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