Flutter编写“按下按钮改变位置坐标”的简单代码时,一直提示The getter 'params' isn't defined for the type 'GoRouterState',麻烦请教可以怎么修改?
代码如下:
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
final GoRouter router = GoRouter(
routes: <GoRoute>[
GoRoute(
path: '/',
builder: (context, state) => const MazePage(x: 0, y: 0),
),
GoRoute(
path: '/x/:x/y/:y',
builder: (context, state) {
final Map<String, String> params = state.params;
final String xParam = params['x'] ?? '0';
final String yParam = params['y'] ?? '0';
final int x = int.tryParse(xParam) ?? 0;
final int y = int.tryParse(yParam) ?? 0;
return MazePage(x: x, y: y);
},
),
],
redirect: (context, state) => '/',
);
@override
Widget build(BuildContext context) {
return MaterialApp.router(
routerDelegate: router.routerDelegate,
routeInformationParser: router.routeInformationParser,
title: 'Maze Navigation',
theme: ThemeData(
primarySwatch: Colors.blue,
),
);
}
}
class MazePage extends StatelessWidget {
final int x;
final int y;
const MazePage({required this.x, required this.y});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Maze Navigation'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('You are at ($x, $y)'),
],
),
),
);
}
}