Провайдер флаттера не разрешает мне доступ к данным - PullRequest
0 голосов
/ 27 января 2020

Я настроил простого провайдера в моем приложении флаттера, который выглядит следующим образом:

import 'package:flutter/material.dart';

class Data1 {
  int data1 = 0;
  double _data2;
  var _arr = [];
}

class SendDataModel extends ChangeNotifier {
  List<Data1> FinalDataList = new List<Data1>(3);

  void changeOption(int whichone, int whichnumber) {
    FinalDataList[whichone].data1 = whichnumber;  //this is where I am getting the error

    notifyListeners();
  }

}

Я звоню провайдеру следующим образом в моем коде:

Provider.of<SendDataModel>(context, listen: false).changeOption(1, int.parse(value));

И я получаю следующую ошибку:

«Получатель« data1 »вызван на нуль».

Может кто-нибудь помочь мне с этим? Я пытаюсь сохранить массив Data1 в состоянии. Спасибо!

1 Ответ

1 голос
/ 27 января 2020

Поскольку вы пытаетесь получить доступ к .data1 для нулевого объекта, при создании списка ни один объект Data1 не был инициализирован внутри.

Я бы просто предложил вам

var myData = Data1();
myData.data1 = whichnumber;
FinalDataList[whichone] = myData;

Конечно, вы должны настроить лучше под свои нужды, но проблема снова в том, что ваш список полон null s

...