渲染前后的海边钩子

Iya*_*ael 4 smalltalk seaside pharo

我想看看 Seaside 中是否有一个钩子是在渲染之前调用的,一个是在渲染之后调用的。碰巧我想在屏幕上显示一个通知,我希望渲染完成后,修改此组件,以便下次渲染完成时不再显示。

感谢致敬!

Joh*_*n B 6

Seaside 不是“钩子”,而是具有组件装饰,您可以将其包裹在组件周围以更改其行为。如果你包装你的根组件,你可以实现一个装饰,在渲染整个组件树之前和之后调用钩子。

但是,在渲染时更改组件的状态会破坏 Seaside 为您提供的状态回溯行为。状态更改应该发生在动作回调中。因此,没有“渲染后”阶段您可以更改组件的状态(好吧,您可以,但它会导致微妙的问题)。相反,使用操作阶段(即回调)来更改组件的状态,以便下次调用渲染阶段时,不会显示您的组件。

我假设当您说“下次渲染完成”时,这意味着在用户单击链接或完成其他操作之后。这意味着您可以在执行动作回调时更改状态并安排渲染树的状态,以便不再显示相关组件。如果你这样做,当用户点击浏览器中的后退按钮时,他将再次看到该组件。