Estou tentando passar um objeto como argumento de rota no Flutter. Para isso eu uso ModalRoute.of(context as BuildContext)!.settings.arguments as Object?;
. Este objeto deve ser opcional. Portanto, tornei-o anulável. (Objeto?) Após a leitura, deve-se decidir se está presente ou não e agir de acordo. se este objeto não estiver presente, recebo um erro chamado: Bad state: No element
Isto não pode ser interceptado com um try catch. O que estou fazendo de errado?
late Object? editObject;
bool edited = false;
bool loaded = false;
@override
Widget build(BuildContext context) {
if (!loaded) {
loaded = true;
editRecipe =
ModalRoute
.of(context as BuildContext)!
.settings
.arguments as Object?;
if (editObject != null) {
edited = true;
//filling in the info into the ui
}
}
Tente primeiro verificar se
ModalRoute.of(context)
estánull
antes de tentar acessá-losettings.arguments
. Algo assim:Ou, em vez disso, você provavelmente pode usar
?
em vez de!
: