這個錯誤是在 udemy maximilian schwarzmuller 的 flutter course 錯誤中。這是代碼:我已經提供了字串值,但我仍然在('tx.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(),
),
],
),
);
}
}
我已將字串提供給此函式,但出現錯誤。
在此處輸入影像描述
uj5u.com熱心網友回復:
嘗試這個;
Column(
children: transactions.map((tx) {
return Card(
child: Text(tx.title ?? "default text on null"),
);
}).toList(),
),
uj5u.com熱心網友回復:
你有多種方法來解決這個問題
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(),
),
uj5u.com熱心網友回復:
交易的標題欄位可能未初始化。您使用的是 null-safe Dart 版本嗎?您的事務類應如下所示:
class Transaction {
String id;
String name;
double amount;
DateTime date;
Transaction({required this.id, required this.name, required this.amount, required this.date});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/535797.html
標籤:扑镖移动的