渲染前后的海边挂钩
Seaside hooks before and after rendering
我想看看Seaside有没有渲染前调用和渲染后调用的hook。碰巧我想在屏幕上显示一个通知,我想一旦渲染完成,修改这个组件,以便下次渲染完成时不再显示。
感谢和问候!
Seaside 有 component decorations 而不是 'hooks',您可以环绕一个组件来改变它们的行为。如果你包装你的根组件,你可以实现一个装饰,在整个组件树上渲染之前和之后调用钩子。
但是,在渲染时更改组件的状态会破坏 Seaside 为您提供的状态回溯行为。状态变化应该发生在动作回调中。因此,没有 'after rendering' 阶段可以更改组件的状态(好吧,你可以,但它会导致 subtle problems)。相反,使用操作阶段(即回调)来更改组件的状态,以便下次调用渲染阶段时,不会显示您的组件。
我假设当您说 'the next time the rendering is done' 时,这意味着在用户单击 link 或执行其他操作之后。这意味着您可以在执行动作回调时更改状态并安排渲染树的状态,以便不再显示相关组件。如果你这样做,用户在浏览器中单击后退按钮时将再次看到该组件。
我想看看Seaside有没有渲染前调用和渲染后调用的hook。碰巧我想在屏幕上显示一个通知,我想一旦渲染完成,修改这个组件,以便下次渲染完成时不再显示。
感谢和问候!
Seaside 有 component decorations 而不是 'hooks',您可以环绕一个组件来改变它们的行为。如果你包装你的根组件,你可以实现一个装饰,在整个组件树上渲染之前和之后调用钩子。
但是,在渲染时更改组件的状态会破坏 Seaside 为您提供的状态回溯行为。状态变化应该发生在动作回调中。因此,没有 'after rendering' 阶段可以更改组件的状态(好吧,你可以,但它会导致 subtle problems)。相反,使用操作阶段(即回调)来更改组件的状态,以便下次调用渲染阶段时,不会显示您的组件。
我假设当您说 'the next time the rendering is done' 时,这意味着在用户单击 link 或执行其他操作之后。这意味着您可以在执行动作回调时更改状态并安排渲染树的状态,以便不再显示相关组件。如果你这样做,用户在浏览器中单击后退按钮时将再次看到该组件。