我想显示一个小部件的基础上,是一个bool的变量是真还是假。但是我得到了错误:_TypeError(类型“Null”不是类型“Widget”的子类型)。
import 'package:expense_tracker/Models/expense.dart';
import 'package:flutter/material.dart';
class ExpensesItem extends StatelessWidget {
const ExpensesItem(this.isAdditionalDisplayed, this.expense, {super.key,});
final Expense expense;
final bool isAdditionalDisplayed; //HERE IS THE BOOL VARIABLE
_displayAdditional() {
if(isAdditionalDisplayed == true) {
Column(
children: [
Row(
children: [
SizedBox(
height: 100,
width: 360,
child: Text(expense.additional))],
)
],
);
}
if(isAdditionalDisplayed == false) {
SizedBox(height: 0,);
}
} //HERE I ASK IF _DISPLAYADDITIONAL IS TRUE OR FALSE. IF ITS TRUE IT DISPLAYS THE WIDGET, IF IT'S FALSE IT DISPLAYS AN EMPTY SIZEDBOX.
@override
Widget build(BuildContext context) {
return Card(
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: 20,
vertical: 16,
),
child: Column(
children: [
Text(expense.title),
const SizedBox(height: 4),
Column(
children: [
Row(
children: [
SizedBox(
height: 100,
width: 360,
child: Text(expense.additional))],
)
],
),
_displayAdditional(), //HERE THE WIDGET SHOULD BE DISPLAYED. THIS IS WHERE I GET THE ERROR
],
),
),
);
}
}
已尝试添加到第二个if语句以检查_isAdditionalDisplayed是否为null。这给出了一个错误,它不能为null,并且将始终为false:if(isAdditionalDisplayed == false || isAdditionalDisplayed == null) {
错误:操作数不能为null,因此条件总是“false”。尝试删除条件、封闭条件或整个条件语句。
已尝试在调用_displayAdditional时添加一个删除标记:_displayAdditional()!,
错误:_TypeError(用于空值的空校验运算符)
这两个变化同时发生,我得到了两个错误。有一个或另一个我得到一个或另一个错误。
这是非常混乱的。在一个地方它说isAdditionalDisplayed不能为空。在另一种情况下,它说它是空的。
1条答案
按热度按时间yzckvree1#
看起来问题是你没有从函数返回小部件。