Я начал проверять поддержку веб-приложения флаттера. После урока [1] я обнаружил следующую ошибку в консоли браузера:
TypeError: undefined is not an object (evaluating 'window.$requireLoader.getModuleLibraries = dart_sdk.dart.getModuleLibraries')
Line: 16:22
URL: http://rebalancr.net:45441/main_module.bootstrap.js
Error: {}
Ни одна из функций урока не работает. Например, индикатор выполнения и окно приветствия.
Я использую последнюю бета-версию
$ flutter --version
Flutter 1.17.0 • channel beta • https://github.com/flutter/flutter.git
Framework • revision d3ed9ec945 (8 days ago) • 2020-04-06 14:07:34 -0700
Engine • revision c9506cb8e9
Tools • Dart 2.8.0 (build 2.8.0-dev.18.0 eea9717938)
Вот мой полный файл main.dart:
import 'package:flutter/material.dart';
void main() => runApp(LoginApp());
class LoginApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
routes: {
'/': (context) => LoginScreen(),
},
);
}
}
class LoginScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.grey[200],
body: Center(
child: SizedBox(
width: 400,
child: Card(
child: LoginForm(),
),
),
),
);
}
}
class LoginForm extends StatefulWidget {
@override
_LoginFormState createState() => _LoginFormState();
}
class _LoginFormState extends State<LoginForm> {
final _firstNameTextController = TextEditingController();
final _lastNameTextController = TextEditingController();
final _usernameTextController = TextEditingController();
double _formProgress = 0;
@override
void _showWelcomeScreen() {
Navigator.of(context).pushNamed('/welcome');
}
Widget build(BuildContext context) {
return Form(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
LinearProgressIndicator(value: _formProgress),
Text('Sign Up', style: Theme
.of(context)
.textTheme
.display1), // display1 changes to headline4 in 1.16
Padding(
padding: EdgeInsets.all(8.0),
child: TextFormField(
controller: _firstNameTextController,
decoration: InputDecoration(hintText: 'First name'),
),
),
Padding(
padding: EdgeInsets.all(8.0),
child: TextFormField(
controller: _lastNameTextController,
decoration: InputDecoration(hintText: 'Last name'),
),
),
Padding(
padding: EdgeInsets.all(8.0),
child: TextFormField(
controller: _usernameTextController,
decoration: InputDecoration(hintText: 'Username'),
),
),
FlatButton(
color: Colors.blue,
textColor: Colors.white,
onPressed: _showWelcomeScreen,
child: Text('Sign up'),
),
],
),
);
}
}
class WelcomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Text('Welcome!', style: Theme.of(context).textTheme.display3),
),
);
}
}
[1 ] https://flutter.dev/docs/get-started/codelab-web
Я рад любой идее, как подойти к этому.
Спасибо!