[Seaside] #render: and #children. What if I don't?
johan at inceptive.be
Thu Oct 16 20:16:35 UTC 2014
As far as my knowledge goes about this part of the Seaside framework, #children is important in:
- a WATask 
- when you don’t override renderContentOn: (falling back to the default behavior of rendering the children)
- in combination with #states when you want to support state backtracking with the back button
FWIW, I know and have many components that don’t declare their children and it works fine. Of course, I’m not using any of the above in those cases.
On 16 Oct 2014, at 18:43, Mariano Martinez Peck <marianopeck at gmail.com> wrote:
> Hi guys,
> From what I understand, if we have a component called X which, as part of the #renderConentOn: (or derivative), does:
> ComponentX >> renderContentOn: html
> html render: self componentY
> Then we need to add componentY to the #chidlren:
> ComponentX >> children
> ^ Array with: self componentY
> So..not the question is...it seems in some places I forgot to add it to #chidlren and the component still render correctly. At the same time, I remember once I was fighting to find a bug and it was exactly because I forgot to add the component to #children. So... what exactly happens if I DON'T add the component as a #children? What does it get broken?
> The second question is...is a bit of a pain the #children. Why? Because I must store the component somewhere...which I may not requiere that. For example, if I have this code:
> html render: (MyWebMessageComponent new errorMessage: 'Problem with xxxx'; yourself)
> then I must define an instVar for that component, assign to it before render, and then render...
> so the second question is...for this type of component that I render only "once" (the component is instantiated as part of the rendering phase and dead after), do I also have to add it to #children?
> Thanks in advance for any clarification.
> seaside mailing list
> seaside at lists.squeakfoundation.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the seaside