Есть ли ограничение на количество вложенных #call: в Приморском?

Я разрабатываю Приморское приложение и подозреваю, что достиг точки, в которой я больше не могу #call: другой компонент. Это не проблема моих WAComponents, так как я пробовал другие сообщения, которые заканчиваются в #call:, лайк #confirm:,

У меня 4 вложенных #call:в моем приложении (я знаю, я знаю... но я не ищу советы по дизайну, просто ответ на этот вопрос:)). Пятый просто перезагружает страницу, и вызываемый компонент никогда не появляется.

Я искал документы, но в этом ничего нет, и отладка для меня действительно трудна, так как я не знаком с внутренним кодом Seaside.

Это Seaside 3.2 под Pharo 6.1.

Спасибо!

1 ответ

Решение

Нет ограничений для вложенных #call:s, как правильно указано в комментарии Йохана.

В данном конкретном случае "нулевое" поведение #call: (то есть, просто перезагрузка страницы), было связано с ошибкой в #children метод родителя WAComponent, То, что происходило здесь, было:

  • Компонент А #render:'компонент B, но компонент A#children: был глючит
  • Компонент B хотел #call: компонент С
  • #call: не работал, просто перезагрузил страницу

Как говорится в Приморской документации, каждый WAComponent что делает другой WAComponent должен переопределить #children с коллекцией всех подкомпонентов. Это легко забыть реализовать, так как в большинстве случаев это не шоу-стопор. Пока вы не попадете в такой сценарий.

Другие вопросы по тегам