查看provider的文档,它显示:
读取值的最简单方法是使用静态方法 Provider.of(BuildContext上下文)。该方法将在 从与BuildContext关联的小部件开始的小部件树 通过,它将返回找到的类型T的最接近变量(或 如果找不到则抛出)。
因此,基本上,您可以按变量/值的类型而不是其名称来访问变量/值。这是否意味着每个提供程序只能具有每种类型的单个变量?如果我有两个String类型的变量怎么办?我需要将它们包装为自定义类型,然后通过该类型然后通过变量名称进行访问吗?
答案 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;
}
}