Ошибка флаттера "Не удалось перейти к исходному маршруту" - PullRequest
0 голосов
/ 06 февраля 2019

Я получаю следующую ошибку при запуске приложения Flutter:

══╡ EXCEPTION CAUGHT BY FLUTTER FRAMEWORK ╞═════════════════════════════════════════════════════════
The following message was thrown:
Could not navigate to initial route.
The requested route name was: "/animals/cats/lolcats"
The following routes were therefore attempted:
 * /
 * /animals
 * /animals/cats
 * /animals/cats/lolcats
This resulted in the following objects:
 * MaterialPageRoute<dynamic>("/", animation: null)
 * MaterialPageRoute<dynamic>("/animals", animation: null)
 * null
 * MaterialPageRoute<dynamic>("/animals/cats/lolcats", animation: null)
One or more of those objects was null, and therefore the initial route specified will be ignored and
"/" will be used instead.
════════════════════════════════════════════════════════════════════════════════════════════════════

Я объявил маршрут /animals/cats/lolcats:

'/animals': (context) => AnimalsScreen(context),
'/animals/dogs': (context) => DogsScreen(context),
'/animals/cats/lolcats': (context) => LolcatsScreen(context),

и установил для initialRoute значение

initialRoute: '/animals/cats/lolcats',

Почему я получаю вышеуказанную ошибку, даже если маршрут объявлен?

1 Ответ

0 голосов
/ 06 февраля 2019

Я думаю, что журналы ошибок довольно явные.

Поскольку вы использовали «/» для разделения ваших маршрутов, это интерпретируется как «под-маршруты».На самом деле он пытается пройти по этим маршрутам один за другим:

* /
* /animals
* /animals/cats
* /animals/cats/lolcats

И поскольку /animals/cats не определен, он получает ошибку, а затем возвращается к исходному маршруту: /

Если вы хотите решить эту проблему, переименуйте ваши маршруты с подчеркиванием следующим образом: /animals_cats_lolcats Поэтому он не будет пытаться получить /animals/cats, который не существует

...