代码之家  ›  专栏  ›  技术社区  ›  mikechambers

按提供程序中的名称/类型访问变量

  •  1
  • mikechambers  · 技术社区  · 5 年前

    查看文档 provider 上面写着:

    读取值的最简单方法是使用静态方法 提供程序.of(BuildContext上下文)。这种方法将在 从与BuildContext关联的小部件开始的小部件树 通过,它将返回找到的T类型的最近变量(或 如果没有发现就扔)。

    因此,基本上,您可以通过变量/值的类型而不是名称来访问它。这是否意味着每个提供程序只能有每种类型的单个变量?如果我有两个字符串类型的变量呢?我需要将它们包装成一个自定义类型,然后通过该类型和变量名访问它们吗?

    0 回复  |  直到 5 年前
        1
  •  0
  •   halfelf    5 年前

    我也在挣扎。到目前为止,我已经创建了一个地图并将其返回到getter中。也可以列个单子。我希望找到一个更好的方法,但这就是我目前所拥有的。

    class Thing with ChangeNotifier {
    
      final _things = FullThing().things;
    
      Map get allThings {
        _things.shuffle();
    
        Map<String, dynamic> allThings = {
          "h0": _things.sublist(0, 7),
          "h1": _things.sublist(8, 15),
          "h2": _things.sublist(16, 23),
          "h3": _things.sublist(24, 31),
          "h4": _things.sublist(32, 41),
        };
    
        return allThings;
      }
    }