非空字符串中的颤振错误必须提供给文本小部件



此错误属于udemy Maximilian schwarzmuller颤振航向错误。这是代码:我已经提供了字符串值,我仍然得到非空字符串提供给文本小部件错误在(' txt .title'),

import 'package:flutter/material.dart';
import './transaction.dart';
void main() => runApp(MyWidget());
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'flutter app',
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
final List<Transaction> transactions = [
Transaction(
id: '01',
title: 'azeem',
amount: 90.98,
date: DateTime.now(),
),
Transaction(
id: '02',
title: 'azeem',
amount: 90.98,
date: DateTime.now(),
)
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Expense App'),
),
body: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
width: double.infinity,
child: Card(
child: Text('Text_1'),
color: Colors.blue,
),
),
Column(
children: transactions.map((tx) {
return Card(
child: Text(tx.title),
);
}).toList(),
),
],
),
);
}
}

我已经为这个函数提供了字符串,但是我得到了一个错误。

输入图片描述

try this;

Column(
children: transactions.map((tx) {
return Card(
child: Text(tx.title ?? "default text on null"),
);
}).toList(),
),

你有多种方法来解决这个问题

1。

Column(
children: transactions.map((tx) {
return Card(
child: Text(tx.title!= null ? tx.title : "Default Title"),
);
}).toList(),
),

2。

Column(
children: transactions.map((tx) {
return Card(
child: Text(tx.title ?? "Default Title"),
);
}).toList(),
),

3。

if(tx.title != null)
Column(
children: transactions.map((tx) {
return Card(
child: Text(tx.title!),
);
}).toList(),
),

4。

Column(
children: transactions.map((tx) {
return Card(
child: Text(tx.title.toString()),
);
}).toList(),
),

事务的标题字段可能没有初始化。您使用的是null安全的Dart版本吗?你的Transaction类应该是这样的:

class Transaction {
String id;
String name;
double amount;
DateTime date;
Transaction({required this.id, required this.name, required this.amount, required this.date});
}

相关内容

  • 没有找到相关文章

最新更新