Перед тем, как проголосовать против, прочтите проблему полностью.
Я получаю эту ошибку Я знаю причину этой ошибки, причина в том, что виджет userDetails удаляется из дерева при входе в систему экран выбран. Вопрос в том, как я вставляю этот виджет обратно в Tree. Я пробовал все решения, доступные на StackOverflow и GitHub, но ни одно решение у меня не помогло. Я пробовал использовать новое ключевое слово и глобальный ключ в эшафоте.
Main.dart
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
SharedPreferences prefs = await SharedPreferences.getInstance();
var userPhoneNumber = prefs.getString('phoneNumber');
var userAlternateNumber = prefs.getString('AlternateNumber');
print(userPhoneNumber);
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
.then((_) {
runApp(
MaterialApp(
theme: ThemeData(
textSelectionHandleColor: kOrangeColor, cursorColor: kOrangeColor),
home: userPhoneNumber == null
? new LoginScreen()
: (userAlternateNumber == null
? new UserDetails()
: new HomeScreen()),
),
);
});
}
Функция в LoginScreen.dart
void pushToUserDetailsScreen(BuildContext context) async {
Navigator.push(
context, MaterialPageRoute(builder: (context) => new UserDetails()));
}