小编Ted*_*ddy的帖子

Flutter/Dart 中使用单例 + Provider 可以吗?

所以我正在开发一个 Flutter 应用程序。我有一个单例 GameManager,如下所示:

class GameManager extends ChangeNotifier {
  static final GameManager _singleton = GameManager._internal();

  factory GameManager() {
    return _singleton;
  }

  GameManager._internal();
}
Run Code Online (Sandbox Code Playgroud)

在我的入口点 main.dart 中:

  @override
  void initState() {
    super.initState();

    GameManager().connect(isConnected: () {
      DynamicLinksService().initDynamicLinks();
    });
  }

  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        ChangeNotifierProvider<GameManager>(create: (context) => GameManager()),
      ],
    ...
  }
Run Code Online (Sandbox Code Playgroud)
  1. GameManager().connect() 使用单例模式。
  2. 我在 main.dart 中使用 Provider,在页面中使用 Consumer 来监听 GameManager 中的状态。
  3. 我将其设置为单例,因为 connect() 和使用 GameManager 的提供程序都在 main.dart 中,并且我想在入口点中调用 connect() 。
  4. 单例+提供者/消费者可以吗?如果不是,5 是一个有效的选项吗?
  5. 删除单例。在我的主页中,通过消费者的 GameManger 调用 connect。

dart flutter

5
推荐指数
0
解决办法
719
查看次数

AWS CodeBuild 和 CodeDeploy 上的 Lerna 未安装本地依赖项

所以我有一个名为 backend 的 Typescript 项目,其 package.json 中具有这样的依赖关系:

"dependencies": {
  "@the-couple-game/helpers": "^1.0.0",
}
Run Code Online (Sandbox Code Playgroud)

助手(也是 Typescript)位于另一个文件夹中,其 package.json 如下所示:

{
    "name": "@the-couple-game/helpers",
}
Run Code Online (Sandbox Code Playgroud)

因此,运行lerna bootstrap应该链接两者,并在后端的 node_modules 中安装@the- Couple-game/helpers,这是在本地执行的。

但是,使用 Codebuild 使用下面的 buildspec.yml 执行相同的操作(使用 --no-ci 因为我不想要 npm ci)不会在后端的 node_modules 中添加 @the- Couple-game/helpers 。因此,如果我运行后端的转换后的index.js,它会抱怨缺少模块。

version: 0.1
phases:
  install:
    commands:
      - npm install -g lerna
  pre_build:
    commands:
      - lerna bootstrap --no-ci --concurrency 4
  build:
    commands:
      - lerna run build --concurrency 4
artifacts:
  files:
    - "**/*"
Run Code Online (Sandbox Code Playgroud)

目前,我必须在部署到 CodeDeploy 后手动执行 lerna 引导程序(使用从 appspec.yml 调用的脚本),以便它安装缺少的模块,但 Codebuild 不应该覆盖该部分吗? …

aws-code-deploy aws-codepipeline lerna aws-codebuild aws-code-deploy-appspec

2
推荐指数
1
解决办法
850
查看次数