我正在开发Seaside Application,我怀疑已经达到无法再使用#call:
其他组件的地步了。
这不是我的WAComponent的问题,因为我尝试了其他以#call:
结尾的消息,例如#confirm:
。
我的应用程序中有4个嵌套的#call:
(我知道,我知道...但是我不是在寻找设计建议,只是一个答案:))。第五号只是重新加载页面,被调用的组件永远不会出现。
我搜索了文档,但是却一无所获,由于我不熟悉Seaside的内部代码,调试对我来说真的很困难。
这是Pharo 6.1下的Seaside 3.2。
谢谢!
答案 0 :(得分:0)
嵌套的#call:
不受限制,正如约翰评论中正确指出的那样。
在这种特定情况下,#call:
的“空”行为(即,仅重新加载页面)是由于父级#children
的{{1}}方法中的错误引起的。这里发生的是:
WAComponent
是组件 B ,但是组件 A 的#render:
却有错误#children:
组件 C #call:
无效,它只是重新加载了页面正如Seaside documentation所述,每个渲染另一个#call:
的{{1}} 必须用所有子组件的集合重新定义WAComponent
。容易忘记执行此操作,因为在大多数情况下,这并不是一个障碍。直到您陷入这种情况为止。