1

我正在开发一个海边应用程序,我怀疑我已经到了无法再使用#call:另一个组件的地步。这不是我的 WAComponents 的问题,因为我尝试了其他#call:#confirm:.

我的应用程序中有 4 个嵌套#call:的 (我知道,我知道......但我不是在寻找设计建议,只是对此的答案:))。第 5 个只是重新加载页面,而被调用的组件永远不会出现。

我搜索了文档,但对此一无所知,调试对我来说真的很困难,因为我不熟悉 Seaside 的内部代码。

这是 Pharo 6.1 下的 Seaside 3.2。

谢谢!

4

1 回答 1

0

#call:正如 Johan 的评论中正确指出的那样,嵌套的 s 没有限制。

#call:在这种特殊情况下, (即,只是重新加载页面)的“空”行为是由于#childrenparent 的方法中的错误WAComponent。这里发生的是:

  • 组件A ' #render:ed 组件B,但组件A#children:是错误的
  • 组件B想要#call:组件C
  • #call:没有用,它只是重新加载页面

正如Seaside 文档所述,每WAComponent一个渲染另一个都WAComponent 必须重新定义#children所有子组件的集合。很容易忘记执行此操作,因为大多数时候它不是一个显示停止器。直到你发现自己陷入这种情况。

于 2018-12-30T15:51:55.427 回答