我正在使用clojurescript 0.0-2371,我正在尝试编写一些克隆对象的代码.我有这个代码,我想克隆一个节点并调用一个clone-object函数:
(def animate
(js/React.createClass
#js
{:getInitialState
(fn []
(this-as this
{:children
(->
(.. this -props -children)
(js/React.Children.map (fn [child] child))
(js->clj :keywordize-keys false))}))
:render
(fn []
(this-as this
(let [children (:children (.. this -state))]
(doseq [[k v] children]
(clone-object (aget children k))))))}))
Run Code Online (Sandbox Code Playgroud)
clone-object 看起来像这样:
(defn clone-object [obj]
(log/debug obj)
(doseq [[k v] obj]
(log/debug k)))
Run Code Online (Sandbox Code Playgroud)
如果我这样打电话clone-object:
(doseq [[k v] children]
(clone-object v))
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
未捕获的错误:[object Object]不是ISeqable
答案是使用goog.object.forEach:
(defn clone-object [key obj]
(goog.object/forEach obj
(fn [val key obj]
(log/debug key))))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3161 次 |
| 最近记录: |