#reactjs #import
#reactjs #импорт
Вопрос:
Я перечислил некоторые уроки, видео, видео будут воспроизводиться в модальном
<div className="list_lessons">
<ul>
{ lesson.lessonFile amp;amp; lesson.lessonFile.length > 0 amp;amp; lesson.lessonFile.map((file, i) => (
<li key={i}>
<p data-toggle="modal" data-target=".bd-example-modal-lg" className="video" onClick={<Modal videolink={file.filepath} />}>
{ file.filename }
</p>
</li> ))}
</ul>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
Здесь я передал путь к файлу модальному компоненту как ()
это модальная часть =>
import React, { Fragment, useState } from 'react'
import { createPortal } from 'react-dom'
import Videoplayer from 'react-video-js-player'
import videoSrc from '../FILES/1. Introduction.mp4';
const Modal = ({ vidPoster, videoName }) => {
const poster = !vidPoster ? 'https://images.unsplash.com/photo-1602526215099-19d4d14797d6?ixid=MXwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHw=amp;ixlib=rb-1.2.1amp;auto=formatamp;fit=cropamp;w=1000amp;q=80' : vidPoster
return createPortal(
<Fragment>
<div
className="modal fade bd-example-modal-lg"
tabIndex={-1}
role="dialog"
aria-labelledby="myLargeModalLabel"
aria-hidden="true">
<div style={{width: "100%"}} className="modal-dialog modal-dialog-centered modal-lg">
<div className="modal-content">
<div className="modal-header">
<h5 className="modal-title" id="exampleModalLongTitle">
Modal title
</h5>
<button
type="button"
className="close"
data-dismiss="modal"
aria-label="Close"
>
<span aria-hidden="true">×</span>
</button>
</div>
<div className="modal-body">
{!videolink amp;amp; (
<Fragment>
<h5 className="modal-title" style={{display: 'block'}} id="exampleModalLongTitle1">
Playing Default Video...
</h5>
<br/>
</Fragment>
)}
<Videoplayer src={videoSrc} poster={poster} width='770' />
</div>
</div>
</div>
</div>
</Fragment>,
document.querySelector("#modal")
);
}
export default Modal
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
Что я на самом деле хочу сделать, это ( import videoSrc from '../FILES/{videoName}
что-то вроде этого) импортировать видео по названию видео
Есть ли какой-либо способ импортировать такой способ или любой другой способ, которым я могу это сделать?
Ответ №1:
Вы должны иметь возможность добавлять эти видео в свою public/
папку, а затем ссылаться на них оттуда. Нет импорта — просто строковый реквизит.
<Videoplayer src={'/FILES/1. Introduction.mp4'} poster={poster} width='770' />
Комментарии:
1.Это не сработало.
VIDEOJS: ERROR: (CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED) The media could not be loaded, either because the server or network failed or because the format is not supported. Object { code: 4, message: "The media could not be loaded, either because the server or network failed or because the format is not supported." }
Выдает эту ошибку2. @NafizAlDin куда ты положил файлы? Это будет то же самое, что и размещение файлов на общедоступном сервере — если это не работает, это потому, что он не в поддерживаемом формате
3. да, я нашел проблему !. с videojs что-то не так. поэтому я переключился на react-player, и он работал просто отлично.. Спасибо, чувак, ты очень помог.