小编par*_*ras的帖子

必须初始化不可为 null 的实例字段“taskTitle”

我是 Flutter 开发的新手,在我的代码中为什么我收到此错误(taskTitle必须初始化不可为空的实例字段),尽管在 constructor 中初始化了实例字段

因此,我假设每当创建此类实例时,用户都需要提供两个强制成员,因此不应发生此错误(尽管如果添加 Late 修饰符此错误就会消失)。

请解答我的疑惑。

class Task {
  String taskTitle;
  bool isDone = false;

  Task(String taskTitle, bool isDone) {
    this.taskTitle = taskTitle;
    this.isDone = isDone;
  }
}
Run Code Online (Sandbox Code Playgroud)

dart flutter dart-null-safety

2
推荐指数
1
解决办法
5319
查看次数

RefreshIndicator 不会旋转,直到从 api 中使用 flutter 中的 bloc 获取数据

我想实现当用户拉动刷新时的行为,指示器不断旋转,直到以块模式从网络获取数据。事实上,我知道发生这种情况的原因,因为刷新方法立即返回。如何阻止此方法直到从网络获取数据。我如何等待数据来自网络。谢谢!

Future<void> _refresh() async{
    context.read<PostBloc>(RefreshEvent());
}

@override
Widget build(BuildContext context) {
  return BlocBuilder<PostBloc, PostStates>(builder: (context, state){
    switch (state.status){
      case PostStatus.failure:
        return const Center(child: Text('failed to fetch posts'));
      case PostStatus.success:
        if (state.posts.isEmpty) {
          return const Center(child: Text('no posts'));
        }
        return RefreshIndicator(
          triggerMode: RefreshIndicatorTriggerMode.onEdge,
          onRefresh: () async {
            await _refresh();
          },
          child: ListView.builder(
            physics:  AlwaysScrollableScrollPhysics(),
            itemBuilder: (context, index){
              if (index >= state.posts.length){
                return BottomLoader();
              }
              return PostListItem(post: state.posts[index]);
            },
            itemCount: state.hasReachedMax ? state.posts.length : state.posts.length + 1,
            controller: _scrollController,
          ),
        );
      case …
Run Code Online (Sandbox Code Playgroud)

dart flutter bloc

2
推荐指数
1
解决办法
1643
查看次数

标签 统计

dart ×2

flutter ×2

bloc ×1

dart-null-safety ×1