Я пытаюсь разработать мобильное приложение с Flutter, я использую swagger для генерации кодекса файлов Dart, который содержит все веб-сервисы. Я хочу получить список всех пользователей из веб-сервисов.На экране я хочу отобразить для каждого пользователя: изображение, имя, фамилию и адрес электронной почты.Я подготовил пользовательский интерфейс в main.dart следующим образом:
import 'package:flutter/material.dart';
import './utility.dart';
void main() => runApp(ListUserApp());
class ListUserApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'User List 4Motors',
home: ListUserScreen(),
);
}
}
class ListUserScreen extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return ListUserScreenState();
}
}
class ListUserScreenState extends State<ListUserScreen> {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
primarySwatch: Colors.indigo,
),
home: Scaffold(
appBar: AppBar(
title: Text('User List 4Motors'),
),
body: _buildListUser(),
),
);
}
Widget _buildListUser() {
Utility test = new Utility();
print(test.getFirstNameUser());
return ListView.builder(
itemBuilder: (context, position) {
return Card(
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Container(
margin: const EdgeInsets.all(10.0),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
margin: const EdgeInsets.only(right: 15.0),
child: Image(
width: 65, image: AssetImage('assets/person.jpeg')), // Image of user
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
'firstname & lastname', // first and last name of user
style: TextStyle(
fontSize: 22,
),
),
Container(
margin: const EdgeInsets.all(5.0),
child: Text('email'), // Email of user
),
],
),
],
),
),
),
);
});
}
}
И, следующая модель пользователя, сгенерированная swagger:
part of swagger.api;
class UsersData {
String id = null;
String firstName = null;
String lastName = null;
String email = null;
String phone = null;
String image = null;
DateTime birthDay = null;
String fireBaseID = null;
String dealerID = null;
String type = null;
String provider = null;
DateTime registrationDate = null;
DateTime lastLogin = null;
bool allowComment = null;
bool isActive = null;
List<UserAddressData> addresses = [];
UsersData();
@override
String toString() {
return 'UsersData[id=$id, firstName=$firstName, lastName=$lastName, email=$email, phone=$phone, image=$image, birthDay=$birthDay, fireBaseID=$fireBaseID, dealerID=$dealerID, type=$type, provider=$provider, registrationDate=$registrationDate, lastLogin=$lastLogin, allowComment=$allowComment, isActive=$isActive, addresses=$addresses, ]';
}
UsersData.fromJson(Map<String, dynamic> json) {
if (json == null) return;
id = json['id'];
firstName = json['firstName'];
lastName = json['lastName'];
email = json['email'];
phone = json['phone'];
image = json['image'];
birthDay =
json['birthDay'] == null ? null : DateTime.parse(json['birthDay']);
fireBaseID = json['fireBaseID'];
dealerID = json['dealerID'];
type = json['type'];
provider = json['provider'];
registrationDate = json['registrationDate'] == null
? null
: DateTime.parse(json['registrationDate']);
lastLogin =
json['lastLogin'] == null ? null : DateTime.parse(json['lastLogin']);
allowComment = json['allowComment'];
isActive = json['isActive'];
addresses = UserAddressData.listFromJson(json['addresses']);
}
Map<String, dynamic> toJson() {
return {
'id': id,
'firstName': firstName,
'lastName': lastName,
'email': email,
'phone': phone,
'image': image,
'birthDay': birthDay == null ? '' : birthDay.toUtc().toIso8601String(),
'fireBaseID': fireBaseID,
'dealerID': dealerID,
'type': type,
'provider': provider,
'registrationDate': registrationDate == null
? ''
: registrationDate.toUtc().toIso8601String(),
'lastLogin': lastLogin == null ? '' : lastLogin.toUtc().toIso8601String(),
'allowComment': allowComment,
'isActive': isActive,
'addresses': addresses
};
}
static List<UsersData> listFromJson(List<dynamic> json) {
return json == null
? new List<UsersData>()
: json.map((value) => new UsersData.fromJson(value)).toList();
}
static Map<String, UsersData> mapFromJson(
Map<String, Map<String, dynamic>> json) {
var map = new Map<String, UsersData>();
if (json != null && json.length > 0) {
json.forEach((String key, Map<String, dynamic> value) =>
map[key] = new UsersData.fromJson(value));
}
return map;
}
}
Я создаю класс «Утилита».дротик ", который я положил метод, чтобы получить список имен всех пользователей внутри, как показано ниже:
import 'package:flutter_app_ws/dart-client-generated/lib/api.dart';
class Utility {
UsersData user;
Utility();
List<String> getFirstNameUser() {
List<String> firstName = new List<String>();
firstName.add(user.firstName);
return firstName;
}
}
, когда я запускаю свое приложение, многие ошибки появляются следующим образом:
Сообщение компилятора: file: ///home/innovi/development/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.0+1/lib/src/browser_client.dart:6: 8: Ошибка: не найдено: 'dart: html' import 'dart: html';^ file: ///home/innovi/development/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.0+1/lib/src/browser_client.dart: 95: 25: Ошибка: введитеHttpRequest не найден.void _openHttpRequest (запрос HttpRequest, метод String, URL-адрес строки, ^^^^^^^^^^^ file: ///home/innovi/development/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.0 + 1 / lib / src / browser_client.dart: 30: 25: ошибка: «HttpRequest» не является типом. Final _xhrs = new Set (); ^^^^^^^^^^^ lib/main.dart:63:27: Ошибка: ожидал идентификатор, но получил ','., // имя и фамилию пользователя ^ file: ///home/innovi/development/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.0+1/lib/src/browser_client.dart:44:19: Ошибка: метод не найден: 'HttpRequest'. var xhr = new HttpRequest (); ^^^^^Файл ^^^^^^: ///home/innovi/development/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.0+1/lib/src/browser_client.dart: 55:45: Ошибка: метод не найден: «Blob». Var blob = xhr.response == null? New Blob ([]): xhr.response; ^^^^ файл: /// home / innovi / development / flutter /.pub-cache / hosted / pub.dartlang.org / http-0.12.0 + 1 / lib / src / browser_client.dart: 56: 24: Ошибка: метод не найден: «FileReader». var reader = new FileReader ();^^^^^^^^^^ file: ///home/innovi/development/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.0+1/lib/src/browser_client.дротик: 55: 49: ошибка: слишком много позиционных аргументов: 0 разрешено, но 1 найдено.Попробуйте удалить дополнительные позиционные аргументы.var blob = xhr.response == ноль?новый BLOB-объект ([]): xhr.response;^ file: ///home/innovi/development/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.0+1/lib/src/browser_client.dart: 95: 25: Ошибка: 'HttpRequest 'не тип.void _openHttpRequest (запрос HttpRequest, метод String, URL-адрес строки, ^^^^^^^^^^^ file: ///home/innovi/development/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.0 + 1 / lib / src / browser_client.dart: 97: 13: Ошибка: метод 'open' не определен для класса 'invalid-type'. Попробуйте исправить имя с именем существующего методаили определение метода с именем «open». request.open (метод, url, async: asynch, пользователь: пользователь, пароль: пароль); ^^^^ file: ///home/innovi/development/flutter/.pub-cache / hosted / pub.dartlang.org / http-0.12.0 + 1 / lib / src / browser_client.dart: 105: 11: Ошибка: метод 'abort' не определен для класса 'invalid-type'Попробуйте исправить имя с именем существующего метода или определить метод с именем 'abort'. Xhr.abort ();
Я хочу знать, в чем проблема, и как я могу потреблятьМой веб-сервис, чтобы получить и отобразить: изображение, имя / фамилию и адрес электронной почты всего пользователя.