ClojureScript + React-Native - Вставить видео - PullRequest
0 голосов
/ 15 ноября 2018

Я новичок в ClojureScript. Я хотел бы встроить видео (Youtube) в гибридное мобильное приложение, используя ClojureScript и React Native. Я пытался реализовать плагины реагировать-нативно-видео и реагировать-нативно-youtube в ClojureScript для достижения этой цели. Но оба они заканчиваются крахом. Я не знаю, есть ли что-то неправильное в обращении к библиотеке или нет.

Использование Reaction-native-Video :

(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"}}]

Использование act-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.

Что-то не так с приведенным выше кодом? Кто-нибудь, пожалуйста, помогите?

Справка:

реагируют родной-видео

реагировать родной-YouTube

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Я мог бы встраивать видео 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.

0 голосов
/ 21 ноября 2018

Не зная, какую ошибку вы получаете и какую настройку, попробуйте вместо этого вызвать модули следующим образом:

(def Video (aget (js/require "react-native-video") "default"))
...