ClojureScript + React-Native - Вставить видео
Я новичок в ClojureScript. Я хотел бы встроить видео (Youtube) в гибридное мобильное приложение, используя ClojureScript и React Native. Я пытался реализовать плагины реагировать-нативное видео и реагировать-нативно-YouTube в ClojureScript для достижения этой цели. Но оба они заканчиваются крахом. Я не знаю, есть ли что-то не так с обращением к библиотеке или нет.
Использование реакции-нативного видео:
(def Video (js/require "react-native-video"))
(def video-view (r/adapt-react-class Video))
Ссылка на компонент:
[video-view {:style {:position "absolute"
:top 0
:bottom 0
:left 0
:right 0}
:source {:uri "https://www.youtube.com/watch?v=M8Fn8SfXw3M"}}]
Использование response-native-youtube:
(def YouTube (js/require "react-native-youtube"))
(def video-view (r/adapt-react-class YouTube))
Ссылка на компонент:
[video-view {:style {:flex 1
:margin-bottom 60
:padding-top 10
:padding-bottom 10}
:video-id "M8Fn8SfXw3M"
:play true
:fullscreen true
:loop true}]
Ни один из этих двух вариантов не работает.
Ниже приведен отчет о сбое:
> Invariant Violation: Element type is invalid: expected a string (for
> built-in components) or a class/function (for composite components)
> but got: object This error is located at:
> in RCTView
> in RCTView
> in RCTScrollView
> in ScrollView
> in t
> in RCTView
> in :page-art-single
> in RCTView
> in .a
> in RCTView
> in :main
> in py
> in RCTView
> in RCTView
> in t Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite
> components) but got: object. This error is located at:
> in RCTView
> in RCTView
> in RCTScrollView
> in ScrollView
> in t
> in RCTView
> in :page-art-single
> in RCTView
> in .a
> in RCTView
> in :main
> in py
> in RCTView
> in RCTView
> in t undefined is not an object (evaluating 'this.map.setNativeProps') D/ReactNative(15325):
> ReactInstanceManager.detachViewFromInstance()
Я использую lein для компиляции ClojureScript Re-Natal для создания этого приложения React Native на основе ClojureScript.
Что-то не так с приведенным выше кодом? Кто-нибудь, пожалуйста, помогите?
Ссылка:
1 ответ
Не зная, какую ошибку вы получаете и какую настройку имеете, попробуйте вместо этого вызвать модули следующим образом:
(def Video (aget (js/require "react-native-video") "default"))
Я мог бы встроить видео на YouTube с помощью ReactNative WebView.
(def ReactNative (js/require "react-native"))
(def web-view (r/adapt-react-class (oget ReactNative "WebView")))
Ссылка на компонент:
[web-view { :style {
:width 400
:height 200
:zIndex 10}
:javaScriptEnabled true
:domStorageEnabled true
:source {:uri "https://www.youtube.com/embed/M8Fn8SfXw3M"}}]
Я думаю, что response-native-video не поддерживает YouTube видео.