Я хотел бы иметь пользовательский MaterialPageRoute, где объект RouteSettings будет назначаться с именем по умолчанию, которое должно быть компоновщиком, т.е. именем класса виджета.
Я переопределяю метод, как показано ниже, и не понимаю, как получить имя класса из объекта построителя.
import 'package:flutter/material.dart';
class CMaterialPageRoute extends MaterialPageRoute {
CMaterialPageRoute({@required builder, RouteSettings settings, maintainState = true, bool fullscreenDialog = false,})
: assert(builder != null),
assert(maintainState != null),
assert(fullscreenDialog != null),
assert(opaque),
super(settings: settings == null ? new RouteSettings(name: (builder as Widget).toStringShort()):settings,fullscreenDialog: fullscreenDialog);
}
в приведенном выше коде я пытался получить виджет от компоновщика и установить короткое имя в качестве имени RouteSettings, но проблема в приведении, и приведенная ниже ошибка говорит о том, что приведение невозможно
type '(dynamic) => CitySelectionScreen' не является подтипом типа 'Widget' в приведении типа
Причина, по которой я это делаю, является частью FirebaseДля интеграции с аналитикой мне потребуется изменить весь код навигации, чтобы добавить новые RouteSettings, которых раньше не было, и я пытался обойти это, чтобы установить имя по умолчанию вместо изменений, которые должны быть выполнены на уровне всего проекта.
Пожалуйста, помогите мне в этом.