小编Kev*_*RED的帖子

如果 Flutter 中的有状态小部件可以实现同样的功能,为什么我们需要无状态小部件?

我是 flutter 世界的新手,我最近学习了(或者我认为我已经学会了)有状态和无状态小部件,这是 Flutter 小部件的基础。

我们将无状态小部件用于未在显示器上重绘的内容(如文本、按钮等),但有状态小部件可以重绘自己。

所以我的问题是,如果有状态小部件可用于绘制与无状态小部件相同类型的小部件,为什么我们需要无状态小部件?

或者是否有任何特定原因在 flutter 中使用无状态而不是有状态的小部件?或者我们可以一直使用有状态的小部件而不是只能绘制一次内容的无状态小部件吗?

谢谢,对不起,如果这是一个愚蠢的问题。

编辑

那么问题不是无状态和有状态之间的区别。我知道其中的区别,但是仅使用有状态小部件有什么影响,因为通过使用它我们还可以实现无状态小部件可以做的大部分事情,那么为什么我们需要无状态小部件?它在颤振环境中的重要性是什么?的应用程序将不时重新绘制?

flutter statefulwidget statelesswidget

12
推荐指数
2
解决办法
4233
查看次数

Typeorm - 基于实体的迁移

所以我将 typeorm 与 ormconfig.json 一起使用。既然synchronize不能在生产中使用,我如何运行基于实体的迁移?

我的ormconfig.json文件

{
    "type": "postgres",
    "host": "localhost",
    "port": 5432,
    "username": "",
    "password": "",
    "database": "backend-api",
    "synchronize": false,
    "logging": true,
    "migrationsRun": true,
    "entities": ["dist/entity/**/*.js"],
    "migrations": ["dist/migration/**/*.js"],
    "subscribers": ["dist/subscriber/**/*.js"],
    "cli": {
        "entitiesDir": "src/entity",
        "migrationsDir": "src/migration",
        "subscribersDir": "src/subscriber"
    }
}
Run Code Online (Sandbox Code Playgroud)

这也是我唯一的Todo.ts实体文件

import {
    BaseEntity,
    Column,
    CreateDateColumn,
    Entity,
    PrimaryGeneratedColumn,
    UpdateDateColumn,
} from 'typeorm';

@Entity()
export class Todo extends BaseEntity {
    @PrimaryGeneratedColumn()
    id: number;

    @Column('text')
    text: string;

    @Column('boolean', { default: false })
    completed: boolean;

    @CreateDateColumn() …
Run Code Online (Sandbox Code Playgroud)

postgresql node.js typeorm

9
推荐指数
2
解决办法
2万
查看次数

此版本的 MongoDB 太新,无法在现有数据文件上启动。尝试 MongoDB 4.2 或更早版本

我最近将 mongodb 版本从 4.2 更新到了 4.4。似乎它有一些突破性的变化。

现在该服务根本没有运行,并向我显示此错误。

我知道降级不是一种选择。但是有没有办法解决这个问题?

提前致谢

linux mongodb

5
推荐指数
2
解决办法
2115
查看次数

云功能能否绕过 Firestore 安全规则

我最近开发了 firestore 和 firestore 安全规则的实现。

某些经过身份验证的用户可以获取由他们创建的数据,这是该应用程序的功能之一。

即,A 创建 X B 创建 Y A 不能访问 Y,B 不能访问 X。

这是使用安全规则来确保的。

我使用云功能部署了该应用程序,这充当了 api。

模拟安全规则通过没有失败,但是通过postman等工具调用api访问时,A可以访问Y和X,B可以访问X和Y。

我读了这个堆栈溢出问题,它讨论了如果由 firebase-admin sdk 使用,则覆盖安全规则,这就是我正在使用的。

但我只是好奇,有没有其他方法可以限制外部 api 工具来获取这样的数据?

这是链接

firebase firebase-security google-cloud-functions google-cloud-firestore

4
推荐指数
1
解决办法
1077
查看次数

如何在颤振中有效地使用提供程序获取初始数据

最近,我做了一个颤振课程。讲师使来自 API 的 get 请求变得如此困难。对于像 flutter 这样的混合框架,我从未想过它如此困难。

下面是我的代码。我provider用于状态管理。

Future<void> fetchAndSetProducts() async {
    try {
      const url = 'fetch-url';
      final response = await http.get(url);
      final data = json.decode(response.body) as Map<String, dynamic>;
      final List<Product> loadedProducts = [];
      data.forEach((key, value) {
        loadedProducts.add(Product(
          id: key,
          title: value['title'],
          description: value['description'],
          imageUrl: value['imageUrl'],
          price: value['price'],
          isFavorite: value['isFavorite'],
        ));
      });

      _items = loadedProducts;
      notifyListeners();
    } catch (error) {
      throw (error);
    }
  }
Run Code Online (Sandbox Code Playgroud)

在产品概览屏幕中,我正在展示产品页面,此方法的调用方式如下:

bool _isInit = true;
  bool _isLoading = false;

  @override
  void didChangeDependencies() { …
Run Code Online (Sandbox Code Playgroud)

api provider flutter

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

Laravel:在查询构建器上背靠背使用first()时出错

我的laravel项目中有以下代码

$config = DB::table('custom_config')->where('item_id', 5);
$cost = [
    'car_service_fee' => $config->where('managed_by', 1)->first()->service_fee,
    'bike_service_fee' => $config->where('managed_by', 2)->first()->service_fee
];
Run Code Online (Sandbox Code Playgroud)

我的custom_config表格如下.

+---------+------------+-------------+
| item_id | managed_by | service_fee |
|---------+------------+-------------|
|    5    |       1    |    8.5      |
|---------+------------+-------------|
|    5    |       2    |    2.0      |
+---------+------------+-------------+
Run Code Online (Sandbox Code Playgroud)

car_service_fee正在取得结果8.5

但我bike_service_fee正在恢复nullfirst()

如果它如下所示,相同的代码可以工作,

$cost = [
    'car_service_fee' => DB::table('custom_config')->where('item_id', 5)->where('managed_by', 1)->first()->service_fee,
    'bike_service_fee' => DB::table('custom_config')->where('item_id', 5)->where('managed_by', 2)->first()->service_fee
];
Run Code Online (Sandbox Code Playgroud)

first()存储在变量或laravel中的某个查询构建器上使用的背对背方法是否有任何问题?

谢谢

php sql laravel

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

将主协程上下文的副本传递给子例程上下文

我有一个 golang API 端点及其关联的上下文。

端点需要在幕后执行一些繁重的工作,因此我在主端点内创建一个新的子例程,然后返回响应本身。

为了处理上下文取消,我创建了一个后台上下文并将其作为新上下文传递给子例程。

问题是通过这样做,是的,我可以执行后台子例程,但是主上下文中用于跟踪的值,如请求 id、span id 等(大多数键对我来说是未知的)将是丢失的。

即使在响应发送到客户端之后,如何将父上下文传递给子例程而不取消执行。

编辑

我没有将任何值传递到上下文中。但最初我们传递的是跟踪所需的 request-id、span-id 等。这些信息都在上下文中。这是一个内部库,上下文是我们保存它的地方。

我知道这是使用上下文传递值的反模式,除了请求 ID 和其他对库而不是业务逻辑重要的值之外,不会传递任何值

go goroutine

-1
推荐指数
1
解决办法
996
查看次数