flutter:: Можно ли загрузить statefulwidget как вторую страницу?
У меня есть main.dart, a.dart и b.dart. Когда я запускаю main.dart, все результаты a и b отображаются на одной странице. Но я хочу, чтобы результаты a и b отображались на разных страницах. Поэтому я использовал MaterialPageRoute, чтобы сделать видимым на первой странице и b на второй странице. но произошла ошибка.
Именованный параметр «записи» является обязательным, но нет соответствующего аргумента.
Я предполагаю, что a и b оба написаны с помощью statefulwidget, поэтому появляется ошибка. Есть какие-нибудь советы по этому поводу?
Пример a. dart
class Recorder extends StatefulWidget {
final Function save;
const Recorder({Key? key, required this.save}) : super(key: key);
@override
_RecorderState createState() => _RecorderState();
}
class _RecorderState extends State<Recorder> {
б. пример
class Records extends StatefulWidget {
final List<String> records;
const Records({
Key? key,
required this.records,
}) : super(key: key);
@override
_RecordsState createState() => _RecordsState();
}
class _RecordsState extends State<Records> {
пример main.dart
class HomePage extends StatefulWidget {
final String _appTitle;
const HomePage({Key? key, required String title})
: assert(title != null),
_appTitle = title,
super(key: key);
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
Пример main.dart (ошибка)
@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: FloatingActionButton(
onPressed: (){
},
child: InkWell(child: Icon(Icons.mic),onTap: (){
Navigator.push(
context,
MaterialPageRoute(builder: (context) => Records());
},),
),
1 ответ
Вам не хватает параметра для записей. Ваше решение - либо удалить
требуетсяthis.records
или измените свой
Navigator.push
к этому
MaterialPageRoute(builder: (context) => Records(['']));