我试图用一个简单的clojurescript应用程序从localStorage中提取一个整数.我尝试的所有东西最终都尝试了某种错误的行为.
以下是我的程序,没有从本地存储初始化.我会忽略未找到密钥的情况,因为我有一个JQuery版本可以处理它来填充存储空间.此外,JQuery应用程序读取ClojureScript保存到localStorage很好.这对我有用.
快速总结是这样的.我的消息说"自上次事件发生以来已有数天",$ number位于一个名为"counter"的div中.我有三个按钮; 一个递增计数,一个递减计数,最后一个将计数重置为零.
(ns days.core
(:require [goog.events :as events]
[goog.string :as string]
[goog.math.Integer :as int]
[goog.dom :as dom]))
(defn initial-state [] 0)
(def count (atom (initial-state)))
(defn set-counter [n]
(do (.setItem (.localStorage (dom/getWindow)) "count" n)
(dom/setTextContent (dom/getElement "counter") n)))
(defn set-button-fn [button-id f-update]
(events/listen (dom/getElement button-id)
"click"
(fn [] (do (f-update) (set-counter @count)))))
(defn start-app []
(do
(set-counter @count)
(set-button-fn "addDay" (fn [] (swap! count inc)))
(set-button-fn "decDay" (fn [] (swap! count dec)))
(set-button-fn "reset" (fn [] (reset! …Run Code Online (Sandbox Code Playgroud) 在我的clojurescript代码中,我有以下内容:
(defn onload [] (repl/connect "http://localhost:9000/repl"))
(set! (.-onload js/window) onload)
Run Code Online (Sandbox Code Playgroud)
Clojurescript repl在开发中非常有用,但我在制作过程中将它留在代码中犹豫不决.在开发(简单编译)期间使用上述代码的最简洁方法是什么,但在生产(高级编译)期间不存在?
我试图在浏览器的控制台上从clojurescript打印出一个JSON.
我找到了以下链接 - 如何使用JavaScript漂亮地打印JSON?
以上链接提供以下js - JSON.stringify(obj, undefined, 2)
cljs中的以下翻译不起作用 (.stringify js/JSON obj undefined 2)
如何在ClojureScript中使用clojure.set?
我总是得到一个错误.
(def middle-land (set (for [x water-hor
y (vec (clojure.set/difference (set (range 0 board-side))
(set water-ver)))]
[x y])))
ReferenceError: clojure is not defined
Run Code Online (Sandbox Code Playgroud) 我跟着"你好世界!" 这些指南中NodeJS的示例
并为每个我得到这个错误
Error: No *print-fn* fn set for evaluation environment
Run Code Online (Sandbox Code Playgroud)
我错过了一步吗?这似乎是一个相当基本的问题...有谁知道print-fn设置在哪里?
在开发期间,我想为使用schema.core/defn定义的所有函数启用验证,而不是必须使用它们进行注释:^:always-validate.这个库有可能吗?
这样的东西不起作用,可能是因为元数据只在编译时添加:
(def dev false)
;; example of schema validation
(sm/defn ^{:always-validate dev}
add :- s/Num
[a :- s/Num b :- s/Num]
(+ a b))
Run Code Online (Sandbox Code Playgroud) 我试图弄清楚ClojureScript交叉和cljx预处理器之间的关系.
它们是否可以一起使用?或竞争对手解决同样的问题?
一个人成为首选或更标准的做事方式吗?
特别是我想要做的是创建一个可以编译为Clojure和ClojureScript的单个库(有几个变体).我目前正在使用cljx.
但后来我想将库包含在更多的clj和cljx项目中.寻找有关这方面的信息,我很多时候会遇到交叉的文档而不是cljx.
我试图将Javascript对象转换为Clojure.但是,我收到以下错误:
(js/console.log (js->clj e)) ;; has no effect
(pprint (js->clj e)) ;; No protocol method IWriter.-write defined for type object: [object Geoposition]
Run Code Online (Sandbox Code Playgroud)
是的,这个对象来自Geolocation API.我想,我必须扩展IEncodeClojure和IWriter,但我不知道怎么样.
例如,添加以下内容:
(extend-protocol IEncodeClojure
Coordinates
(-js->clj [x options]
(println "HERE " x options)))
Run Code Online (Sandbox Code Playgroud)
加载我的代码时产生错误: Uncaught TypeError: Cannot read property 'prototype' of undefined
我正在玩Figwheel并编写一个简单的单页应用程序,不需要任何服务器端智能.
原则上,这个程序.可以放在任何静态Web服务器上.
但是我该如何实际部署呢?看起来我的Figwheel开发环境中的main.js正在设置图形连接.
我实际需要将什么js和html文件放在我的静态服务器上?Figwheel是否创建了它们,还是我需要创建一个新的main.js和index.html?我在哪里可以找到例子?
该文档非常适合如何开始使用Figwheel,但令人惊讶的是对完成开发后的操作保持沉默.
使用ClojureScript为React Native捆绑js时出现以下错误.在捆绑javascript包时,似乎节点内存不足.使用ClojureScript时可能会发生这种情况,因为生成的js文件通常比vanilla js更大.
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
<--- Last few GCs --->
152689 ms: Mark-sweep 1369.3 (1434.8) -> 1362.8 (1434.8) MB, 2794.5 / 0 ms [allocation failure] [GC in old space requested].
155498 ms: Mark-sweep 1362.8 (1434.8) -> 1362.9 (1434.8) MB, 2808.4 / 0 ms [allocation failure] [GC in old space requested].
158508 ms: Mark-sweep 1362.9 (1434.8) -> 1362.8 (1434.8) MB, 3010.8 / 0 ms [last resort gc].
161189 ms: Mark-sweep 1362.8 (1434.8) …Run Code Online (Sandbox Code Playgroud) clojurescript ×10
clojure ×8
cljsrn ×1
cljx ×1
figwheel ×1
leiningen ×1
node.js ×1
react-native ×1