首页 > 解决方案 > 未定义的名称“任务”不允许我的应用运行

问题描述

我在运行我的应用程序时遇到问题。我正在尝试创建一个 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,
              ),
            ),
          ],
        ),
      ),
    );
  }
}

这是错误:错误

标签: flutterdart

解决方案


我希望你的项目中有一个任务模型。如果没有创建一个(只需添加一个示例模型,您需要根据自己的要求创建一个):

class Task {
   String task;
   
   Task(this.task);
}

在您的 TaskListState 中创建此模型的一个实例:

class _TaskListState extends State<TaskList> {
    final task = Task('Grocery');

    // Remaining code
}

注意:上面的代码总是显示 Grocery,在你的实际应用中你可能需要动态创建具有实际值的任务对象。


推荐阅读