2017-07-19 97 views
2

刚刚开始使用红色并且难以理解如何评估块。下面给了我一个*** Script Error: panel has no value错误:了解红色块评估

Red [ 
    needs: 'view 
] 

my-panel: [ 
    panel 300x300 [ 
     text "World" 
    ] 
] 

view [ 
    title "Hello" 

    do my-panel 
] 

我能得到它的工作,如果我内联my-panel块的内容,但无法找到一个方法来达到分裂代码,然后包括它的视图功能的块中。任何人都可以给我一个真正的快速指针,指出上述代码有什么问题?

回答

4

红色语言包含几个DSL,您在view之后使用的以上一个呼叫是VIDdo这个词在不同的语境中有不同的含义。在红色常规语言中,它评估一个红色代码块,在VID中,它是一个关键字,允许将红色代码嵌入到VID中。目前为止这么好,但是你没有将一块红色代码传递给do,而是一块VID代码。

我想你要实现的是动态插入my-panel块。这可以用不同的方式来实现,最简单的将使用compose功能:

Red [ 
    needs: 'view 
] 

my-panel: [ 
    panel 300x300 [ 
     text "World" 
    ] 
] 

view compose [ 
    title "Hello" 

    (my-panel) 
] 

我们就拥有的Gitter几个chat rooms如果你需要更多的互动帮助。

干杯!