【问题标题】:How do i include variables in url inside of Flutter如何在 Flutter 内部的 url 中包含变量
【发布时间】:2020-07-11 19:11:14
【问题描述】:

我想将 email 的值放在 1111 和 22222 的 url 中间。电子邮件和密码值来自文本控制器并存储在电子邮件和密码字符串中。我怎样才能把它们放在 url 的中间。 我厌倦了 1111 的 ${email} 它给出了错误只有静态成员可以被初始化

String email = "";
String password = "";
String url ="http://2i6b753b.ngrok.io/authenticate/1111/22222";

【问题讨论】:

    标签: json django flutter


    【解决方案1】:

    您不必使用括号。您可以这样使用,但也可以使用括号。你可以试试https://dart.dev/#try-dart

    main() {
      String email = "mail@example.com";
      String url = "http://2i6b753b.ngrok.io/$email/";
    
      print(url);
    }
    

    【讨论】:

      【解决方案2】:
        var url = Uri.parse("https://yourdomain.com/videos/$id");
      

      你需要解析 url 然后你可以添加你的 id 任何额外的变量。

      然后调用:

      final response = await http.get(url, headers: headers);
      

      【讨论】:

        【解决方案3】:

        您的问题不充分,因为您没有提供任何其他有关使用情况的信息,但根据Only static members can be initialized 错误,我会假设您在StatefulWidget 中使用它(不是StatelessWidget,因为变量是未使用关键字 final 初始化)。

        你的代码

        String email = "";
        String password = "";
        String url ="http://ngrok.io/authenticate/$email/$password";
        

        相同
        String email = "";
        String password = "";
        String url ="http://ngrok.io/authenticate/${this.email}/${this.password}";
        

        这就是问题所在。
        变量emailpassword 是该类的成员(技术上属于this)。变量url 也是该类的成员,它们都是初始化器。初始化器在类的构造函数和超类的构造函数之前执行,this 只允许在这些构造之后访问。 因此,您不能在初始化期间使用初始化程序的值。所以,你能做什么,你可以使用静态成员。

        静态成员是属于静态或非静态类本身的数据成员(变量)或方法,而不是属于该类的对象。

        根据 Google 的说法,这些静态成员不是您在用例中想要的,因为 emailpassword 成员对于类的每个实例应该是不同的。所以,我能建议的最好的解决办法是使用url 作为一个函数或一个getter,而不是作为一个成员,比如

        String get url => "http://ngrok.io/authenticate/$email/$password";
        

        希望对你有帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-02
          • 2018-01-31
          • 1970-01-01
          • 1970-01-01
          • 2014-04-21
          相关资源
          最近更新 更多