I'm trying to get the return of a Future<>
function across my routing system.
I got an error:
The non-nullable local variable 'page' must be assigned before it can be used
raised by the return of my class RouteGenerator
.
My RouteGenerator.dart
:
import 'package:chope_ton_diplome/services/CommonService.dart';
import 'package:flutter/material.dart';
class RouteGenerator {
static Route generate(RouteSettings s) {
Widget page;
CommonService commonService = CommonService();
switch (s.name) {
case RouteConsts.termsScreen:
ArgumentsAuth args = s.arguments as ArgumentsAuth;
commonService.terms.then((terms) =>
page = TermsScreen(email: args.email, terms: terms)
);
break;
default:
page = const Center(
child: Text('La route est inaccessible'),
);
break;
}
return MaterialPageRoute(builder: (context) => page);
}
}
For information, this is my CommonService
:
import 'package:cloud_firestore/cloud_firestore.dart';
class CommonService {
final FirebaseFirestore firebaseFirestore = FirebaseFirestore.instance;
Future<String> get terms async {
String content = '';
DocumentReference documentReference = firebaseFirestore.collection('commons').doc('terms');
content = (await documentReference.get()).get('content');
return content;
}
}
Define a page call my widget, so I'm blocked.
Help please. Thanks for your time.