Как сохранить 3d массив строк с помощью Shared preferences

Я новичок в Flutter и делаю что-то вроде календаря, где все созданные пользователем Ивенты хранятся в 3d массиве IventList[month][day][numOfIvent]. Я пробую закодировать массив в строку, для того чтобы сохранить её через Shared preferences, а потом декодировать её обратно при получении данных методами jsonEncode и jsonDecode. Но при декодировании полученного массива я получаю ошибку error: The argument type 'String?' can't be assigned to the parameter type 'String'. (argument_type_not_assignable at [buzhigsr_app] lib\calender.dart:35). Может быть кто-нибудь знает как убрать эту ошибку или иным способом сохранить массив через Shared preferences? Заранее всем спасибо.

  List tList = List.generate(12, (m) => List.generate(31, (d) => List.generate(40, (i) => "")));
  getAndSendData() async{
  var prefs = await SharedPreferences.getInstance();
  prefs.setString('key', jsonEncode(tList));
  tList = jsonDecode(prefs.getString('key'));
  }

Ответы (1 шт):

Автор решения: santavital

Простыми словами ошибка : The argument type 'String?' can't be assigned to the parameter type 'String'

возникает когда переменной типа String присваевается значение типа String или null; исправление выглядит примерно так:

String pureStr = nullOrStr!;
→ Ссылка