React native 如何在expo+;反应本机初始化阶段?

React native 如何在expo+;反应本机初始化阶段?,react-native,expo,clojurescript,reagent,React Native,Expo,Clojurescript,Reagent,我正在使用expo cljs模板(lein new expo myapp+试剂)引导我的expo/react native/试剂/clojurescript应用程序 因为我的应用程序需要地理围栏,在需要TaskManager的expo中,我定义了TaskManager任务,如下所示: (ns myapp.mod (:require [oops.core :refer [ocall]])) ; javascript interop (def taskmanager (js/require

我正在使用expo cljs模板(
lein new expo myapp+试剂
)引导我的expo/react native/试剂/clojurescript应用程序

因为我的应用程序需要地理围栏,在需要
TaskManager
的expo中,我定义了
TaskManager
任务,如下所示:

(ns myapp.mod
    (:require [oops.core :refer [ocall]])) ; javascript interop

(def taskmanager (js/require "expo-task-manager"))

; call outside of component as per react-native requirement
; to be done during initialization phase
(ocall taskmanager "defineTask" "task-name" (fn [data error] (prn "nowt")))
我很早就在我的应用程序中运行了它,甚至在需要图像之前。但我始终得到
TaskManager.defineTask必须在初始化阶段调用错误,以figwheel开发模式运行。如果clojurescript的顶层和底层不是初始化阶段,那么什么时候是?在我的clojurescript之前有什么东西吗?我还尝试在init函数和app root中调用它作为试剂类型3组件


版本信息:expo“^34.0.3”、react“16.8.3”、react native“34.0.0”、expo任务管理器“~6.0.0”、试剂“0.8.1”

问题在于re-natal/figwheel中使用的初始化机制

它首先加载一个简单的helper JS文件,该文件不包含任何您自己的代码。它只是设置初始加载过程。此代码是异步加载的,完成后,它将呈现实际的应用程序代码,替换它首次使用的占位符

我不知道有什么方法可以像re-natal/figwheel所期望的那样以同步方式运行代码


您可以尝试没有此异步问题的解决方案。

谢谢!根据您的工作,您关于shadowcljs的建议让我从PEZ获得了一个模板repo:使用它可以避免您描述的异步问题,我问题中的代码现在运行时不会抛出错误。如果其余的工作,我还不知道,但问题是答案。