Причина одинакова для push
и pop
- это найти Navigator
.
Глядя на .pop
, вы видите, что это состояние c, вспомогательная функция, которая выполняет:
return Navigator.of(context).pop<T>(result);
context
используется в .of
для поиска навигатора в дереве виджетов над виджетом, где вы вызываете pu sh или pop. Как и следовало ожидать, of
(еще одна удобная функция stati c) находит фактический навигатор, используя:
context.findAncestorStateOfType()
Итак, в итоге вы передаете контекст, так что context.findAncestor...
может использоваться для найдите навигатор для вызова метода.