Флаттер 2: Список актеров или Карта на то, что вы хотите

#flutter #casting

Вопрос:

У меня были проблемы с моим приложением, чтобы привести мои переменные к определенным типам.

Например:

Map<dynamic> в Map<String, List<Map<String, dynamic>>>?

Как бы вы поступили ?

Ответ №1:

Сначала я инициализирую свои переменные:

 Map<String, List<Map<String, dynamic>>>? test = {
    [{'test': 'test'}]
}
 

Здесь я хочу выполнить глубокую копию, поэтому я использую jsonEncode jsonDecode, который клонирует мою переменную и преобразует мой клон в a Map<dynamic> .

 jsonDecode(jsonEncode(test))
 

Затем я хочу перевести свой результат в a MapEntry<String, List<dynamic>> .

 (jsonDecode(jsonEncode(test)) as Map).map((key, value) => MapEntry(key, value))
 

Наконец, я хочу привести свою ценность ( List<dynamic> ) в List<Map<String, dynamic>>

 Map<String, List<Map<String, dynamic>>>? result = (jsonDecode(jsonEncode(test)) as Map).map((key, value) =>
        MapEntry(key, (value as List).map((e) => e as Map<String, dynamic>).toList())
 

Здесь переменная теперь имеет тип: Map<String, List<Map<String, dynamic>>>?

Так что это ответ на выполнение глубокой копии с глубоким литьем.