Flutter和Dart - 分配后的Widget参数为空

Flutter and Dart - Widget parameter null after been assigned

我有一个小部件,我在 page.dart

上传递 JSON object

在 page.dart 我是(按顺序):

之后,我将呈现页面的其余部分 body 并调用我的小部件,然后将上述变量传递给该小部件。但是当returns到page.dart并且incentivesOem等于null

时,服务响应没有被捕获

首先——赋值变量 (✅)

List<IncentiveOem> incentivesOem;

IncentiveServiceOem incentiveServiceOem = new IncentiveServiceOem();

第二-调用服务(这里在服务中apireturns一个JSONbody✅)

incentiveServiceOem.getIncentivesOem(userRequestModel).then((incentives) {
  setState(() {
    incentivesOem = incentives;
    isLoaded = true;
  });
});

第三 - 使用列表中的 incentivesOem 变量

我调用小部件IncentivesListOem(**incentivesOem**); 但是当页面加载我的 **incentivesOem** = **null**

IncentivesListOem(incentivesOem: incentivesOem)

问题最终出在我是如何通过小部件访问数据的。

class IncentivesListOem extends StatefulWidget {
  @override
  State<IncentivesListOem> createState() => _IncentivesListOemState();

  // Over here I needed to add "this.incentivesOem"
  IncentivesListOem({Key key, @required this.incentivesOem}) : super(key: key);

  final IncentiveOem incentivesOem;
}

这是因为你已经定义了变量incentivesOem但没有初始化,如下初始化变量,

List<IncentiveOem> incentivesOem = [];

所以问题出在我的小部件上。

class IncentivesListOem extends StatefulWidget {
  @override
  State<IncentivesListOem> createState() => _IncentivesListOemState();

  // Over here I needed to add "this.incentivesOem"
  IncentivesListOem({Key key, @required this.incentivesOem}) : super(key: key);

  final IncentiveOem incentivesOem;
}

然后我可以在我的变量之前使用小部件访问变量,

widget.incentivesOem

然后我就可以像这样输出变量了:

title: Text(
  "${incentivesOem.name}",
),