用于空值颤振的颤振空检查运算符
Posted
技术标签:
【中文标题】用于空值颤振的颤振空检查运算符【英文标题】:Flutter null check operator used on a null value flutter 【发布时间】:2022-01-19 02:12:44 【问题描述】:我正在尝试检查用户是否付款。如果付款完成,用户将看到主页。如果付款未完成,用户将看到付款页面。问题是我在空值上使用了空检查运算符。我做错了什么?
class TwoPage extends StatelessWidget
Package? offer;
PurchaserInfo? _purchaserInfo;
bool? payment;
Future<bool> ispaymentdone() async
await Purchases.setDebugLogsEnabled(true);
await Purchases.setup("public_key");
PurchaserInfo purchaserInfo = await Purchases.getPurchaserInfo();
print(purchaserInfo);
print("buraya kadar iyi");
Offerings offerings = await Purchases.getOfferings();
print(offerings);
// optional error handling
// If the widget was removed from the tree while the asynchronous platform
// message was in flight, we want to discard the reply rather than calling
// setState to update our non-existent appearance.
//if (!mounted) return;
_purchaserInfo = purchaserInfo;
if(purchaserInfo.entitlements.all["content-usage"]!=null)
if ( purchaserInfo.entitlements.all["content-usage"]!.isActive)
print("trueee");
return true;
return false;
@override
Widget build(BuildContext context)
return FutureBuilder(
future: ispaymentdone(),
builder: (context, snapshot)
if (snapshot.data == null)
return SizedBox(
child: Center(child: CircularProgressIndicator(color:Colors.purple)),
height: 10.0,
width: 10.0,
);
else if (snapshot.data == true)
return NewHomeScreen();
else
return MainPayment(purchaserInfo: _purchaserInfo, offer: offer);
,
);
【问题讨论】:
你能把出错的那一行加进去吗? 能否附上错误日志? 【参考方案1】:这是因为你在变量上使用了空检查运算符,但是当你想使用它时,那个特定变量的值是 NULL ,你要么必须给它一些初始值变量或确保值不为空。
【讨论】:
【参考方案2】:这是我的错误:
return MainPayment(purchaserInfo: _purchaserInfo, offer: offer);
我没有分配任何东西来提供变量。
【讨论】:
以上是关于用于空值颤振的颤振空检查运算符的主要内容,如果未能解决你的问题,请参考以下文章
如何在颤振发布方法中修复“未处理的异常:用于空值的空检查运算符”