#flutter #dart #flutter-dependencies
#flutter #dart #flutter-зависимости
Вопрос:
Класс :
class Cart {
String id;
Product product;
String product_name;
double quantity;
List<Option> options;
String userId;
Cart();
Map toMap() {
var map = new Map<String, dynamic>();
map['product_name'] = product.name;
map["id"] = id;
map["quantity"] = quantity;
map["product_id"] = product.id;
map["price"] = product.price;
map["user_id"] = userId;
map["options"] = options.map((element) => element.id).toList();
map["userphone"] = currentUser.value.phone;
map["username"] = currentUser.value.name;
return map;
}
}
В приведенном выше коде map возвращается как тип Cart. Я хочу преобразовать это как тип списка и возвращать таким же образом при вызове. Как этого можно достичь?
Ожидаемый результат от метода в виде динамического значения. Все это значение будет добавлено в список в качестве элемента в определенной позиции :
[product_name: coke, id: 22, quantity: 1.0, product_id: 139, price: 20.0, user_id: 138, options: [], userphone: 9898565621, username: jamie]
Комментарии:
1. Просто создайте функцию с возвращаемым типом
List
. Вставьте все значения в список и верните его. Дайте мне знать, если вам нужна помощь.2. Али, было бы здорово помочь, если бы ты мог показать пример, основанный на этом методе примера. Уже несколько дней работаю над этим..
3. Можете ли вы показать мне пример вывода, который вы ожидаете?
4. @AdrianKarr итак, вы хотите, чтобы внутри карты были значения, такие как id, количество… возвращается в виде списка?
5. @Henok, да. в виде списка строк или динамического значения. Али: Я добавил ожидаемый ответ от метода к вопросу..
Ответ №1:
Я создал образец карты со строковыми значениями для тестирования, и вот код,
var map = new Map<String, dynamic>();
map['product_name'] = 'product.name';
map["id"] = 'id';
map["quantity"] = 'quantity';
map["product_id"] = 'product.id';
map["price"] = 'product.price';
map["user_id"] = 'userId';
map["options"] = 'abc';
map["userphone"] = 'currentUser.value.phone';
map["username"] = 'currentUser.value.name';
var keys = map.keys.toList();
var values = map.values.toList();
List result = List();
int i = 0;
values.map((value){
result.add({keys[i] : values[i]});
i ;
}).toList();
print(result);
//you can return result here
Ответ №2:
вы можете создать подобный список при вызове API
http.Response response = await http.get(
EndPoint.Book,
);
if (response.statusCode == 200) {
var parsed = jsonDecode(response.body);
var bookData = parsed['books'];
List<Cart> cart= bookData.map<Cart>((e) => Cart.fromJson(e)).toList();
print(data);
return data;
}
и использовать https://javiercbk.github.io/json_to_dart / или https://pub.dev/packages/json_serializable для создания класса данных.