flutter - 在 null 上调用了方法“jumpToDay”。[扑]
问题描述
在此应用程序中,用户将能够添加任务并将其显示在PageView.builder
. 用户还可以通过PageView.builder
向左或向右滑动来滚动浏览。综合浏览量映射到日期(例如:当前页面映射到今天的日期,下一页映射到明天的日期等)。我还想实现一个跳转功能,让用户通过在showDatepicker
小部件上指定日期来移动到新页面。
PageView.builder
是通过使用这个项目来实现的。该项目还具有跳转到页面功能:https ://github.com/ZedTheLed/calendar_views
在showDatepicker
下面的方法中实现。通过单击 a 调用它Raisedbutton
:
_selectDate() async {
final DateTime picker =await showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(2010),
lastDate: DateTime(2040)
);
if (picker != null) {
print(picker);
return _daysPageController.jumpToDay(picker); // this method jumps the user to a selected date
// Navigator.pop(context);
// print(selectedDate);
// await runJump(selectedDate);
// return selectedDate;
}
}
当用户单击某个日期时,该变量DateTime picker
成功返回打印语句中用户选择的日期。但是当我将此值传递给 jumptopage 方法时,它给出了他的错误:The method 'jumpToDay' was called on null.
在下面PageView.builder
的代码中实现:
final List<DateTime> days;
Scaffold(
floatingActionButton: new RaisedButton(
child: new Text("Jump To Today"),
onPressed: () {
_selectDate();
},
),
body: new Column(
children: widget.days.map(((day) => Container(
constraints: new BoxConstraints(
maxHeight: MediaQuery.of(context).size.height * 1.00,
maxWidth: MediaQuery.of(context).size.width * 1.00
),
child: Starting_screen(_makeTextString(day)), //this screen displays the tasks added by the user
)
),
).toList()
),
);
该方法_makeTextString
只是修改一个DateTime
值并以所需的格式返回它。
我可以就如何处理此错误提出建议吗?
完整项目可在此处获得:https ://bitbucket.org/NotAnurag/todolist_restarted/src/master/
解决方案
当用户点击某个日期时,变量
DateTime
选择器成功返回打印语句中用户选择的日期。但是当我将此值传递给该jumptopage
方法时,它给出了他的错误:“该方法jumpToDay
在 null 上被调用”
我在代码中看到的问题_daysPageController
是没有初始化。IDE 有用地建议您可以调用的各种方法DaysPageController
,但事实仍然是它已声明,但没有为其分配值(意味着它是null
):
DaysPageController _daysPageController; // remains null unless assigned a value
因此,错误试图说明的是jumpToDay(DateTime)
被调用null
(显然没有这样的方法)。如果您查看堆栈跟踪,则其中隐藏着更明确的提示:
[错误:flutter/lib/ui/ui_dart_state.cc(148)] 未处理的异常:NoSuchMethodError:方法 'jumpToDay' 在 null 上被调用。
尝试初始化控制器,看看它是否有助于解决问题。
推荐阅读
- angular - 为什么 Angular 中的子组件应该通过 NgModule 注册?封装呢?
- excel - Excel - VBA:日期格式数字(yyyy-mm-dd)不适用于所有值
- java - 是否有在基于 Selenium 的测试自动化框架中创建和实现接口的示例?
- python-3.x - 将列转换为多索引列
- delphi - CEF3 发送鼠标点击
- javascript - 如何从 React 中的 int 像素值数组渲染图像?
- node.js - 无法在 CentOS 7 上安装节点画布
- java - 循环给定最大值和范围
- python - 根据列中的值是整数(整数)的条件过滤数据框
- javascript - 动态加载未在 SVG 中呈现