简体   繁体   中英

Flutter null check operator used on a null value flutter

I am trying to check if user make a payment or not.If payment is done, user will see homepage.If payment is not done User will see the payment page. The problem is that I am getting null check operator used on a null value. What I am doing wrong?

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);
      },
    );

  }
}

This is because u r using null check operator on your variables but the value of that particular variable is NULL at a point when u want to use it,either u have to give some initial value to that variable or make sure value is not null.

It is my mistake:

return MainPayment(purchaserInfo: _purchaserInfo, offer: offer);

I didn't assign anything to offer variable.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM