#react-native #clojurescript #reagent #clojurescript-javascript-interop
Вопрос:
Я пытаюсь использовать react-native-swipe-просмотр списка внутри clojurescript. Но у меня возникли некоторые проблемы с преобразованием документированного кода js в код cljs.
Документация:
import { SwipeRow } from 'react-native-swipe-list-view';
<SwipeRow>
<View>
</View>
</SwipeRow>
Мой Код Cljs:
(:require [react-native-swipe-list-view :as swipe_list])
(defn item[]
(
[swipe_list/SwipeRow
[:View]]
))
Онлайн-инструмент:
(def SwipeRow (.-SwipeRow (js/require "react-native-swipe-list-view")))
(defn item[]
(
[SwipeRow
[:View]]
))
Ничего из вышеперечисленного не сработало. Я новичок в cljs. будет очень полезно, если кто-нибудь подскажет мне, как преобразовать приведенные выше строки js в cljs. Спасибо
Ответ №1:
Документы реагентов: Создание «Компонентов» реагентов из реагирующих компонентов
Здесь я собираюсь создать два компонента реагента, view и swipeRow. Я использую разные способы для обоих, чтобы показать два способа импорта библиотеки и создания компонентов. Вы можете использовать любой из них.
;; Importing Reagent and React Native
(ns type_name_server_here
(:require [reagent.core :as reagent]
["react-native" :as rn]))
;; 1st Way: Importing SwipeRow
(def SwipeRowImport (.-SwipeRow (js/require "react-native-swipe-list-view")))
;; Converting it into Reagent Component
(def SwipeRow (reagent/adapt-react-class SwipeRowImport))
;; 2nd Way: Importing View from already imported react-native library and converting it into reagent component
(def view (reagent/adapt-react-class (.-View ^js rn)))
;; SwipeRow requires two children (Check out documentation)
(defn item[]
(
[SwipeRow
[view] [view]]
))
Если вы используете shadow-clj, вы можете использовать эту таблицу в качестве справочной для преобразования отчетов об импорте ES6 в CLJ, которые требуются