为啥颤振无法导入我的模型?

Posted

技术标签:

【中文标题】为啥颤振无法导入我的模型?【英文标题】:Why does flutter fail importing my model?为什么颤振无法导入我的模型? 【发布时间】:2021-03-21 20:58:32 【问题描述】:

早上好,

我一直在尝试将模型名称事务导入我的小部件文件。

即使路径正确,我也会收到此错误消息

Xcode 的输出: ↳ lib/widgets//user_transactions.dart:5:8:错误:读取“lib/widgets/models/transaction.dart”时出错:没有这样的文件或目录 导入'../models/transaction.dart'; ^ lib/widgets//transaction_list.dart:4:8:错误:读取“lib/widgets/models/transaction.dart”时出错:没有这样的文件或目录 导入'../models/transaction.dart'; ^ lib/widgets//user_transactions.dart:13:14:错误:找不到类型“事务”。 最终列表_userTransactions = [ ^^^^^^^^^^^^ lib/widgets//transaction_list.dart:7:14:错误:找不到类型“事务”。 最终清单交易; ^^^^^^^^^^^^ lib/widgets//user_transactions.dart:13:14:错误:“事务”不是一种类型。 最终列表_userTransactions = [ ^^^^^^^^^^^^ lib/widgets//user_transactions.dart:14:5:错误:找不到方法:“事务”。 交易( ^^^^^^^^^^^^ lib/widgets//user_transactions.dart:20:5:错误:找不到方法:“事务”。 交易( ^^^^^^^^^^^^ lib/widgets//user_transactions.dart:29:19:错误:没有为类“_UserTransactionsState”定义方法“Transaction”。 - '_UserTransactionsState' 来自'package:expenses_app/widgets//user_transactions.dart' ('lib/widgets//user_transactions.dart')。 尝试将名称更正为现有方法的名称,或定义名为“Transaction”的方法。 最终 newTx = 交易( ^^^^^^^^^^^^ lib/widgets//transaction_list.dart:7:14:错误:“事务”不是一种类型。 最终清单交易; ^^^^^^^^^^^^ lib/widgets//transaction_list.dart:31:27:错误:没有为“对象”类定义获取器“数量”。 - “对象”来自“飞镖:核心”。 尝试将名称更正为现有 getter 的名称,或者定义一个名为“amount”的 getter 或字段。 '$$tx.amount', ^^^^^^ lib/widgets//transaction_list.dart:43:24:错误:没有为类“对象”定义吸气剂“标题”。 - “对象”来自“飞镖:核心”。 尝试将名称更正为现有 getter 的名称,或定义一个名为“title”的 getter 或字段。 tx.title, ^^^^^ lib/widgets//transaction_list.dart:50:50:错误:没有为“对象”类定义吸气剂“日期”。 - “对象”来自“飞镖:核心”。 尝试将名称更正为现有 getter 的名称,或定义一个名为“date”的 getter 或字段。 DateFormat.yMMMd().format(tx.date),

路径是 models/transaction.dart ,但是读取“lib/widgets/models/transaction.dart”时出现消息错误让我认为我在导入时做错了。

请在下面找到我的文件截图,然后是我的 2 个文件的代码:

models/transaction.dart

import 'package:flutter/foundation.dart';

class Transaction 
  final String id;
  final String title;
  final double amount;
  final DateTime date;

  Transaction(
    @required this.id,
    @required this.title,
    @required this.amount,
    @required this.date,
  );

小部件/transaction_list.dart

import 'package:flutter/material.dart';
import 'package:intl/intl.dart';

import '../models/transaction.dart';

class TransactionList extends StatelessWidget 
  final List<Transaction> transactions;

  TransactionList(this.transactions);

  @override
  Widget build(BuildContext context) 
    return Column(
      children: transactions.map((tx) 
        return Card(
          child: Row(
            children: <Widget>[
              Container(
                margin: EdgeInsets.symmetric(
                  vertical: 10,
                  horizontal: 15,
                ),
                decoration: BoxDecoration(
                  border: Border.all(
                    color: Colors.purple,
                    width: 2,
                  ),
                ),
                padding: EdgeInsets.all(10),
                child: Text(
                  '\$$tx.amount',
                  style: TextStyle(
                    fontWeight: FontWeight.bold,
                    fontSize: 20,
                    color: Colors.purple,
                  ),
                ),
              ),
              Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                  Text(
                    tx.title,
                    style: TextStyle(
                      fontSize: 16,
                      fontWeight: FontWeight.bold,
                    ),
                  ),
                  Text(
                    DateFormat.yMMMd().format(tx.date),
                    style: TextStyle(
                      color: Colors.grey,
                    ),
                  ),
                ],
              ),
            ],
          ),
        );
      ).toList(),
    );
  

看起来模型/transaction.dart 的 2 次导入失败,但我不知道为什么....

感谢您的帮助

【问题讨论】:

【参考方案1】:

没有文件import '../models/transaction.dart'; widgets/models/中有三个文件

new_transaction.dart transaction_list.dart user_transactions.dart

您需要更改相关文件的名称或更改导入以匹配其中一个文件名。

例如import '../models/new_transaction.dart';

【讨论】:

【参考方案2】:lib 下创建一个src 文件夹 将模型和小部件文件夹移动到srcmain.dart 留在lib 运行应用程序

【讨论】:

以上是关于为啥颤振无法导入我的模型?的主要内容,如果未能解决你的问题,请参考以下文章

为啥3dmax导入模型素材时没有颜色了

unity5怎样正确导入FBX,模型大小为啥会发生变化

为啥 Mockery 无法为我的模型创建别名

为啥maya绑定的模型导出fbx会丢失顶点法线信息?

为啥我的逻辑回归模型准确率达到 100%?

当我尝试迁移模型时,为啥会出现“无法序列化错误”?