在尝试显示来自我的api响应的数据时获得Null错误



我有一个货币选择器,其中onSelect我想根据所选货币获取一些记录,并在文本小部件中显示数据。

端点url是这样的wwww.fetchrecordbasedoncurrency?curr=${selectedCurrency}

这是货币选择器

ElevatedButton(
onPressed: () {
Navigator.pop(context);
showCurrencyPicker(
context: context,
showFlag: true,
showSearchField: true,
showCurrencyName: true,
showCurrencyCode: true,
onSelect: (Currency currency) {
setState(() {
fetchData();
});
fetchData();
},
currencyFilter: <String>[
'AUD',
'CAD',
'EUR',
'USD'
],
favorite: ['USD'],
);
},
child: const Text('Select Payment Currency'),
),

这个方法负责获取数据

void fetchData() async {
try {
setState(() {
isLoading = true;
});
var response = await networkHandler.get(
networkHandler.url + 'fetch-data.php?curr=${currencyType}');
getBankInfo = BankInfo.fromJson(response);
print("Bank Currency: ${getBankInfo.bank!.currency}");
} catch (ex) {
print({ex, 'An error occured while fetching bank data'});
} finally {
setState(() {
isLoading = false;
});
}
}

它成功获取数据,但我得到这个错误Null check operator used on a null value

下面的小部件上的,该小部件试图显示基于所选货币

的记录
Text('${getBankInfo.bank!.name}')

嘿,你在${getBankInfo.bank!.name}中得到这个错误。此错误是因为您正在获取getBankInfo。银行是空的,通过使用!你使它不可为空。如果您想避免此错误,那么您可以使用?而不是!如果getBankInfo。Bank为空,那么你将在屏幕上看到空。您也可以使用像getBankInfo.bank?.name ?? ""这样的空感知操作符。

你需要调试这一行也getBankInfo = BankInfo.fromJson(response);,以确认你得到正确的数据或不解析json