【问题标题】:How do I define a variable inside an .env file in Flutter?如何在 Flutter 的 .env 文件中定义变量?
【发布时间】:2020-03-22 15:03:48
【问题描述】:

我正在使用这个library。我想在 Flutter 的 .env 文件中为主机和端口定义一个变量,我想在文件中使用它们。

喜欢:

getData= host:port/myData

【问题讨论】:

    标签: flutter environment-variables flutter-dependencies


    【解决方案1】:

    您可以通过插入.env 文件来做到这一点:

    HOST=localhost
    PORT=3000
    

    pubspec.yaml的资产部分添加.env文件:

    assets:
      - .env
    

    然后,您可以更改main.dart中的main函数来加载.env文件:

    Future main() async {
      await DotEnv().load('.env');
      runApp(MyApp());
    }
    

    之后,您可以通过以下方式在任何地方获取 HOST 和 PORT:

    DotEnv().env['PORT'];
    DotEnv().env['HOST'];
    

    所有这些说明都在库的自述文件中:https://pub.dev/packages/flutter_dotenv#-readme-tab-

    问题更新后编辑:我查看了 DotEnv 库源代码,他们没有实现您需要的此功能。如果您确实需要它,您可以创建一个问题来请求它,或者您可以使用一种解决方法,例如创建一个以您需要的方式组合这些环境变量的常量类。

    【讨论】:

    • 我想在文件中使用它们。比如:getData = host:port/myData
    • 这可以通过创建一个包含大量常量的 dart 文件来完成,这些常量由 env 变量组成。喜欢:String getData = `${DotEnv().env['HOST']}:${DotEnv().env['PORT']}/data`;。如果您可以提供一个未能实现其目标的案例,请将其包含在您的问题中。
    • 项目正在 assets 文件夹中寻找 .env 文件!这是正常的吗?我该如何更改它,以便它尝试在根目录使用 .env?
    • 如果您希望按照以下说明工作,您需要将 DotEnv 设置为像这样的导入变量: import 'package:flutter_dotenv/flutter_dotenv.dart' as DotEnv;此解释缺少此信息。
    【解决方案2】:

    新版.env库有这个功能:

    flutter_dotenv: ^3.1.0

    
    BAR=bar
    
    FOOBAR=$FOO$BAR
    
    ESCAPED_DOLLAR_SIGN='$1000'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-27
      • 2020-04-03
      • 1970-01-01
      • 2021-07-08
      • 2022-01-16
      • 1970-01-01
      • 2018-06-29
      相关资源
      最近更新 更多