#javascript #reactjs
#javascript #reactjs
Вопрос:
Я пытаюсь создать компонент на ReactJS, который в основном оборачивает [Dash.js ][1] веб-плеер для работы с форматом MPEG-DASH.
То, что у меня есть в моем файле:
import React, { Component } from 'react'
import dashjs from 'dashjs/dist/dash.all.min.js'
export default class Player extends Component {
constructor(props){
super(props);
this.classRef = React.createRef(null);
this.src = props.src;
}
componentDidMount(){
const video = this.classRef.current;
const player = dashjs.MediaPlayer().create();
player.initialize(video, this.src, true);
}
render() {
return (
<video
ref={this.classRef}
/>
)
}
}
который возвращает сообщение в браузере dashjs_dist_dash_all_min_js__WEBPACK_IMPORTED_MODULE_2___default.a.MediaPlayer не является функцией, указывая на ошибку во второй строке метода componentDidMount.
Я просматриваю исходный код, присутствующий на dash.all.debug.js чтобы узнать, как мне следует обращаться с объектом MediaPlayer, и что у меня есть, так это то, что MediaPlayer действительно является функцией:
function MediaPlayer() {
(... ommited)
}
С успехом я создал компонент на shaka-player, используя почти тот же метод упаковки его проигрывателя. Честно говоря. На самом деле у меня нет такого опыта работы с javascript, чтобы точно понимать, что происходит. Может быть, кто-то знает что-то очевидное, чего я не вижу?
Спасибо. [1]: https://github.com/Dash-Industry-Forum/dash.js
Ответ №1:
Ваш оператор импорта должен быть таким, как показано ниже
import dashjs from 'dashjs'