flutter - 未定义的名称“任务”不允许我的应用运行
问题描述
我在运行我的应用程序时遇到问题。我正在尝试创建一个 todolist 应用程序,但我是编码新手,所以我正在战斗。我不确定问题出在哪里。我使用 Android Studio 我有两个文件,除了导入和运行代码之外,我已将所有代码都放在这里。我已经尝试修复所有错误,但它们似乎只会导致更多错误。我无法运行我的应用程序。(我已经删除了一些地方的括号,因为发布这个问题时代码太多)请你帮帮我。
主要飞镖:
import 'package:flutter/material.dart';
import 'Task_Card.dart';
void main() {
runApp(MaterialApp(
home: TaskList(),
));
}
class TaskList extends StatefulWidget {
@override
_TaskListState createState() => _TaskListState();
}
class _TaskListState extends State<TaskList> {
final task = Task('Grocery');
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.grey[800],
appBar: AppBar(
title: Text('ToDoList'),
centerTitle: true,
backgroundColor: Colors.grey[900],
),
body: SingleChildScrollView(
child: Column(),
),
floatingActionButton: FloatingActionButton(
backgroundColor: Colors.black,
onPressed: () {
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => TaskCard(
task: task,
done: () {}
,)
),
);},
child: Icon(
Icons.add
),
),
);
}
}
class Task {
late String task;
Task(this.task);
}
Task_Card.dart:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class Task {
String task;
Task(this.task);
}
class TaskCard extends StatelessWidget {
final Task task;
final Function() done;
TaskCard({required this.task, required this.done});
@override
Widget build(BuildContext context) {
return Card(
margin: EdgeInsets.fromLTRB(16.0, 16.0, 16.0, 0.0),
child: Padding(
padding: const EdgeInsets.all(12.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
task.task,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 18.0,
color: Colors.grey[900],
),
),
SizedBox(height: 6.0,),
TextButton.icon(
onPressed: done,
label: Text(
'Delete Quote',
),
style: TextButton.styleFrom(
primary: Colors.black,
),
icon: Icon(
Icons.delete,
color: Colors.black,
),
),
],
),
),
);
}
}
解决方案
我希望你的项目中有一个任务模型。如果没有创建一个(只需添加一个示例模型,您需要根据自己的要求创建一个):
class Task {
String task;
Task(this.task);
}
在您的 TaskListState 中创建此模型的一个实例:
class _TaskListState extends State<TaskList> {
final task = Task('Grocery');
// Remaining code
}
注意:上面的代码总是显示 Grocery,在你的实际应用中你可能需要动态创建具有实际值的任务对象。
推荐阅读
- ruby-on-rails - Puma 问题阻止运行 rails 服务器
- python - 执行 Azure 移动资源时有没有办法跳过错误?
- neo4j - 在不使用唯一性的情况下确保具有部分匹配的模式的方法是什么?
- google-app-engine - 无法连接到本地 Google Cloud Datastore 模拟器
- python - TypeError: startfile: 文件路径应该是字符串、字节或 os.PathLike,而不是列表
- python - 如何将字符串列表分组到不同子列表的列表中
- jquery - Iframe 中指向 Cloudflare 的跨域问题。跨域
- python - PYGAME - 创建时钟并间隔执行操作
- asp.net-core - 是否有可能在控制器中拥有一个功能,就好像控制器具有 [ApiController] 属性但它没有?
- javascript - 如何防止选择谷歌自动完成来输入我的值?