flutter 关于RevenueCat

noj0wjuj  于 2023-08-07  发布在  Flutter
关注(0)|答案(1)|浏览(124)

我正在学习教程,但被切断了,因为有些东西确实起作用。
我使用revenuecat作为我的订阅处理程序,但是我遇到了一个问题,我不能更新bool值,虽然我做了一个函数。
这个想法是,如果我给出的权限(no_ads)给出了一个结果,形式为entitlement.no_ads,那么“adsOff = false”bool将被转换为“adsOff = true”。
这是负责将bool“adsOff”更改为false或true的函数。

Future<void> presentAd() async {

    CustomerInfo customerInfo = await Purchases.getCustomerInfo();
    print('this is customer info ${customerInfo}');
    final entitlements = customerInfo.entitlements.active.values.toList();
    final liveEntitlement =
    entitlements.isEmpty ? Entitlement.free : Entitlement.no_ads;
    print('current entitlement: $liveEntitlement');
    if(liveEntitlement == Entitlement.no_ads) {
      setState(() {
        adsOff = true;
      });
    }else {
      setState(() {
        adsOff = false;
      });
    }
  }

字符串
布尔值

class Weights extends StatefulWidget {
   Weights({super.key});

  @override
  State<Weights> createState() => _WeightsState();
}

class _WeightsState extends State<Weights> {
  bool adsOff = false;


再次感谢任何帮助,我相信这将是非常明显的欢呼

s4n0splo

s4n0splo1#

在**Statefull widgets中,如果要访问任何变量,需要添加widget.语法。它应该如下所示:widget.[your variable]**尝试以下操作:

Future<void> presentAd() async {
    CustomerInfo customerInfo = await Purchases.getCustomerInfo();
    print('this is customer info ${customerInfo}');
    final entitlements = customerInfo.entitlements.active.values.toList();
    final liveEntitlement =
    entitlements.isEmpty ? Entitlement.free : Entitlement.no_ads;
    print('current entitlement: $liveEntitlement');
    if(liveEntitlement == Entitlement.no_ads) {
      setState(() {
// ADDED [WIDGET.] BEFORE 
        widget.adsOff = true;
      });
    }else {
      setState(() {
// ADDED [WIDGET.] BEFORE 
        widget.adsOff = false;
      });
    }
  }

字符串

相关问题