【发布时间】:2020-08-02 16:15:18
【问题描述】:
我在有状态小部件中有两个回调函数,它们被两个不同的屏幕调用。这是我在有状态小部件(onChange 和 finalBetList)中声明它们的方式;
class AppListView extends StatefulWidget {
final ValueChanged onChange;
final List<MatchList> matchList;
final ValueChanged finalBetList;
AppListView({this.onChange, this.matchList, this.finalBetList});
这就是我在小部件的状态类中实现它们的方式。即使我尝试传递相同的参数 onChange 工作正常但 finalBetList 得到这个错误。 在 null 上调用了“call”方法。Receiver:null 尝试调用:call(1)
widget.onChange(counter);
widget.finalBetList(counter);
一切都一样,其中一个正在工作,但另一个出现错误。我错过了什么?
编辑
这是我从 HomeScreen 调用有状态小部件的代码(效果很好)
Stack(children: [
AppListView(
matchList: matchList,
//callback function brings the counter value from ListView class
onChange: (value) {
setState(() {
counter = value;
});
},
),
这是我从第二个屏幕调用有状态小部件的代码(出现错误)
body: Container(
child: AppListView(
onChange: (value) {},
finalBetList: (value) {
counter = value;
setState(() {
//counter = value;
});
},
matchList: matchList),
),
【问题讨论】:
-
提供实例化 AppListView 的代码
-
我将代码添加到问题的末尾
-
你确定第一个代码 sn -p 是完美运行的吗?因为您没有指定 finalBetList,所以它保留为 null
-
onChange 完美运行,finalBetList 出错。有什么区别?
-
你说你不指定finalBetList是什么意思?
标签: function flutter dart callback parameter-passing