更改 flutter 小部件中的布尔值
Changing a boolean value in a flutter widget
我有一个作业 class,其中有一个分配给它的任务列表。一切正常,但我正在尝试添加一个布尔字段以将作业标记为已完成。现在我没有检查所有的子任务。只是一个简单的复选框,表示作业是否完成。
我有一个数据文件,其中包含预定义的作业和任务。如果我将 true 或 false 分配给数据文件中的完整变量,它会全部加载,复选框会被填充,等等......但我无法更改该值,因为它是硬编码的。
如果我将值保留为未定义,则会出现布尔表达式不得为空错误。
因此,在我的小部件中,我生成了作业列表(可以按下以显示任务列表),我假设我需要在呈现列表之前初始化完整变量。在添加布尔变量之前,此小部件是一个无状态小部件,我已将其更改为有状态,因为我认为我需要 setState() 来更改布尔变量。但是由于作业在数据文件中,这就是我在尝试分配或更改布尔变量时遇到的问题。
任何关于我遗漏的指示都将不胜感激。
class Job {
int jobID;
List<Task> task_list;
String imageURL;
String jobName;
bool complete;
Job({
this.jobId,
this.task_list,
this.imageURL,
this.jobName,
this.complete,
});
}
class Task{
int taskID;
String imageURL;
String name;
String type;
int taskTime;
Task({
this.taskID,
this.imageURL,
this.name,
this.type,
this.taskTime,
})
}
莫非数据文件是用sqflite
生成的?如果是,必须将 bool
类型字段更改为 int
字段,使用 0
和 1
表示 bool
如果你想看到小部件的变化,你必须用 setState(() {complete = true});
包围声明
对于您的 Job
class 构造函数,您能否更改:
Job({
this.jobId,
this.task_list,
this.imageURL,
this.jobName,
this.complete,
});
对此:
Job({
this.jobId,
this.task_list,
this.imageURL,
this.jobName,
this.complete = false,
});
给 complete
默认值 false
应该可以避免 must not be null
错误。我认为这是可以的,因为默认情况下不应完成一项工作,对吗?
我有一个作业 class,其中有一个分配给它的任务列表。一切正常,但我正在尝试添加一个布尔字段以将作业标记为已完成。现在我没有检查所有的子任务。只是一个简单的复选框,表示作业是否完成。
我有一个数据文件,其中包含预定义的作业和任务。如果我将 true 或 false 分配给数据文件中的完整变量,它会全部加载,复选框会被填充,等等......但我无法更改该值,因为它是硬编码的。
如果我将值保留为未定义,则会出现布尔表达式不得为空错误。
因此,在我的小部件中,我生成了作业列表(可以按下以显示任务列表),我假设我需要在呈现列表之前初始化完整变量。在添加布尔变量之前,此小部件是一个无状态小部件,我已将其更改为有状态,因为我认为我需要 setState() 来更改布尔变量。但是由于作业在数据文件中,这就是我在尝试分配或更改布尔变量时遇到的问题。
任何关于我遗漏的指示都将不胜感激。
class Job {
int jobID;
List<Task> task_list;
String imageURL;
String jobName;
bool complete;
Job({
this.jobId,
this.task_list,
this.imageURL,
this.jobName,
this.complete,
});
}
class Task{
int taskID;
String imageURL;
String name;
String type;
int taskTime;
Task({
this.taskID,
this.imageURL,
this.name,
this.type,
this.taskTime,
})
}
莫非数据文件是用sqflite
生成的?如果是,必须将 bool
类型字段更改为 int
字段,使用 0
和 1
表示 bool
如果你想看到小部件的变化,你必须用 setState(() {complete = true});
对于您的 Job
class 构造函数,您能否更改:
Job({
this.jobId,
this.task_list,
this.imageURL,
this.jobName,
this.complete,
});
对此:
Job({
this.jobId,
this.task_list,
this.imageURL,
this.jobName,
this.complete = false,
});
给 complete
默认值 false
应该可以避免 must not be null
错误。我认为这是可以的,因为默认情况下不应完成一项工作,对吗?