Есть ли ограничение на количество вложенных #call: в Приморском? - PullRequest
0 голосов
/ 26 декабря 2018

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

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

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

Это Seaside 3.2 под Pharo 6.1.

Спасибо!

1 Ответ

0 голосов
/ 30 декабря 2018

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

В данном конкретном случае поведение "1004 *", равное нулю (т. Е. Просто перезагрузка страницы), произошла из-за ошибки в #children методе родителя WAComponent.То, что происходило здесь, было:

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

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

...