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

时间:2019-05-10 16:17:02

标签: flutter

查看provider的文档,它显示:

  

读取值的最简单方法是使用静态方法   Provider.of(BuildContext上下文)。该方法将在   从与BuildContext关联的小部件开始的小部件树   通过,它将返回找到的类型T的最接近变量(或   如果找不到则抛出)。

因此,基本上,您可以按变量/值的类型而不是其名称来访问变量/值。这是否意味着每个提供程序只能具有每种类型的单个变量?如果我有两个String类型的变量怎么办?我需要将它们包装为自定义类型,然后通过该类型然后通过变量名称进行访问吗?

1 个答案:

答案 0 :(得分:0)

我也在为此苦苦挣扎。到目前为止,我已经通过创建地图并在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;
  }
}
相关问题