2017-04-01 12 views
1

我是clojurescript和试剂的新手。我尝试用反应导航在我反应过来,本地应用程序,但我得到这个错误如何在clojurescript中使用React Navigation的StackNavigator

Error rendering component (in env.main.reloader > exp_cljs.core.app_root > reagent2) 

这是我的代码

(def react-navigation (js/require "react-navigation")) 
(def StackNavigator (aget react-navigation "StackNavigator")) 

(defn Home 
    [] 
    [text "Hello Navigator"]) 

(defn SimpleApp 
    [] 
    (StackNavigator 
    (clj->js {:Home {:screen (r/create-class {:reagent-render (Home)})}}))) 

(defn init [] 
    (dispatch-sync [:initialize-db]) 
    (.registerComponent rn/app-registry "main" #(r/reactify-component app-root))) 

这是我app-root

(defn app-root [] 
    (SimpleApp)); -- error 
    ;(r/create-class {:reagent-render SimpleApp}); error 
    ;(r/as-element (SimpleApp)); -- error 
    ;(r/adapt-react-class SimpleApp)); -- error 

回答

0
(ns same.app 
    (:require [reagent.core :as r] 
      [same.ui :as ui] 
      [same.util :as u] 
      [same.screens.auth :refer [AuthScreen]] 
      ; [same.screens.reg :refer [RegScreen]] 
     ; [same.screens.resend :refer [ResendScreen]] 
      [same.screens.splash :refer [SplashScreen]] 
      ; [same.screens.drawer :refer [Drawer]] 
      [same.screens.presentation :refer [Presentation]])) 

(def routes #js {;:Drawer #js {:screen (r/reactify-component Drawer)} 
       :AuthScreen #js {:screen (r/reactify-component AuthScreen)} 
       ;:RegScreen #js {:screen (r/reactify-component RegScreen)} 
       ;:ResendScreen #js {:screen (r/reactify-component ResendScreen)} 
       :Presentation #js {:screen (r/reactify-component Presentation)} 
       :Splash #js {:screen (r/reactify-component SplashScreen)}}) 

(def Routing (ui/StackNavigator. 
       routes 
       #js {:initialRouteName "Splash" 
        :headerMode "none" 
        :mode "modal"})) 

(def routing (r/adapt-react-class Routing)) 

(defn AppNavigator [] 
    (fn [] 
    [routing])) 

和android.core:

(ns same.android.core 
    (:require [reagent.core :as r :refer [atom]] 
      [re-frame.core :refer [dispatch-sync]] 
      [same.ui :as ui] 
      [same.events] 
      [same.subs] 
      [same.app :refer [AppNavigator]])) 

(aset js/console "disableYellowBox" true) 

(defn app-root [] 
    (fn [] 
    [AppNavigator])) 

(defn init [] 
    (dispatch-sync [:initialize-db]) 
    (.registerComponent ui/app-registry "Same" #(r/reactify-component app-root))) 
相关问题