MultiProvider
или нет, ничего не меняет.Если два провайдера имеют один и тот же тип, самый глубокий переопределяет значение.
Невозможно получить значение от провайдера, который не является ближайшим предком для данного типа.
Если вынеобходимо получить доступ ко всем этим значениям независимо, каждое из них должно иметь уникальный тип.
Например, вместо:
Provider<int>(
value: 42,
child: Provider<int>(
value: 84,
child: <something>
),
)
Вы можете сделать:
class Root {
Root(this.value);
final int value;
}
class Leaf {
Root(this.value);
final int value;
}
Provider<Root>(
value: Root(42),
child: Provider<Leaf>(
value: Leaf(84),
child: <something>
),
)
Это позволяет получить каждое значение независимо, используя:
Provider.of<Root>(context)
Provider.of<Leaf>(context);