0

我刚刚开始在 ClojureScript 中开发应用程序,并且正在使用 Figwheel 和 Reagent 和 LightTable。一切似乎都是超级互动的,我真的很喜欢 REPL 和代码重新加载的想法,但我不知道如何将 Ratom 从浏览器传输到 REPL。例如,如果我正在开发 tictactoe,如果我能够将当前的板子状态转移到 REPL 只是为了在那里玩它(检查一些功能行为等),那就太棒了。可能吗?

例如,ratom 在tictactoe.core命名空间中定义如下:

(defonce app-state (atom {:text "Welcom to the tictactoe!"
                          :board (new-board 3)}))

在浏览器控制台中有关 Ratom 的信息如下所示:

#<Atom: {:text "Welcom to the tictactoe!", :board [[2 2 2] [1 1 2] [1 1 1]]}>

当我试图获取有关终端中 REPL 中的原子位于tictactoe.core命名空间中的信息时:

tictactoe.core=> app-state
#<Atom: {:text "Welcom to the tictactoe!", :board [[0 0 0] [0 0 0] [0 0 0]]}>

我做错了什么?在同一个 REPL 中,我得到println的结果与浏览器中的相同。

我应该怎么做才能在 REPL 中获得随机数的价值?

4

2 回答 2

1

如果您在命名空间中定义了一个随机数(不是本地到组件),您可以从 REPL 中执行此操作。切换到命名空间,其中定义了一个随机数并通过其符号名称引用它。

于 2016-12-11T14:28:32.540 回答
0

Lighttable 正在创建内部浏览器选项卡并将 REPL 连接到该特定实例,因此之前打开的外部浏览器选项卡不再与 REPL 同步。因此,以下命令在内部 Lighttable 选项卡中显示了随机数的状态。

tictactoe.core=> app-state

如果需要连接到外部选项卡,则应按照查看->连接,单击“添加连接”,“外部浏览器”并按照说明进行操作。

于 2016-12-12T10:41:04.423 回答