不能在颤振中使用()(AKA:匿名函数)[重复]

Posted

技术标签:

【中文标题】不能在颤振中使用()(AKA:匿名函数)[重复]【英文标题】:Can't Use () (AKA: Anonymous Function) in flutter [duplicate]不能在颤振中使用()(AKA:匿名函数)[重复] 【发布时间】:2022-01-20 14:24:09 【问题描述】:

我刚刚创建了一个全新的项目,遇到了这个问题。

我无法使用按钮,因为我无法为它们分配功能!

这是我的代码:

import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:url_launcher/url_launcher.dart';

class HomePage extends StatefulWidget 
  @override
  _HomePageState createState() => _HomePageState();


class _HomePageState extends State<HomePage> 
  @override
  Widget build(BuildContext context) 
    return Container(
      color: Colors.white,
      child: const Align(
          alignment: Alignment.center,
          child: TextButton(onPressed: () , child: Text('LAUNCH'))), //PROBLEM IS HERE
    );
  

  Future<void> _launchUrl(String urlString) async 
    if (await canLaunch(urlString)) 
      await launch(
        urlString,
        forceWebView: true,
      );
     else 
      Fluttertoast.showToast(
          msg: "Try Again",
          toastLength: Toast.LENGTH_LONG,
          gravity: ToastGravity.CENTER,
          timeInSecForiosWeb: 1,
          backgroundColor: Colors.red,
          textColor: Colors.white,
          fontSize: 16.0);
    
  

如您所见,我无法将() 提供给TextButtononPressed 方法。这是我问题的根源。

Flutter 显示的错误是: Invalid constant value.

还有我使用的包:

dependencies:
  fluttertoast: ^8.0.8
  url_launcher: ^6.0.17
  animated_splash_screen: ^1.1.0

【问题讨论】:

请参阅我在 ***.com/a/69214531 上的说明:允许 lambdas 成为 const 不是免费的。 【参考方案1】:

要解决此问题,请删除 align 前面的 const

从这里:

child: const Align(
          alignment: Alignment.center,
          child: TextButton(onPressed: () , child: Text('LAUNCH'))),

到这里:

child: Align(
          alignment: Alignment.center,
          child: TextButton(onPressed: () , child: Text('LAUNCH'))),

【讨论】:

以上是关于不能在颤振中使用()(AKA:匿名函数)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

什么是透明匿名高匿代理?详解!

匿名函数

匿名函数

python 之匿名函数

15 .内置函数,递归函数,二分法

在颤振中,匿名登录会持续多长时间?