---
title: محدوده‌بندی حالت (تزریق‌ها)
description: یاد بگیر چطور حالت رو (از طریق تزریق‌ها) توی ReArch محدوده‌بندی کنی.
---

# محدوده‌بندی حالت (تزریق‌ها)
محدوده‌بندی حالت رو می‌تونی با ترکیب یه `RearchConsumer` و یه `InheritedWidget` جدید به دست بیاری.

اما چون این کار کلی کد تکراری (boilerplate) ایجاد می‌کنه،  
ReArch یه ویجت داخلی به اسم `RearchInjection` داره که حالت رو توی درخت ویجت "تزریق" می‌کنه:

```dart
/// مقدار فعلی شمارش رو به فرزندان توی درخت [Widget] ارائه می‌ده.
class CountInjection extends RearchInjection<CountInjection, ValueWrapper<int>> {
  const CountInjection({required super.child, super.key});

  @override
  ValueWrapper<int> build(BuildContext context, WidgetHandle use) {
    return use.data(0);
  }

  static ValueWrapper<int> of(BuildContext context) =>
      RearchInjection.of<CountInjection, ValueWrapper<int>>(context);

  static ValueWrapper<int>? maybeOf(BuildContext context) =>
      RearchInjection.maybeOf<CountInjection, ValueWrapper<int>>(context);
}

const SomeWidget(
  child: CountInjection(
    child: Builder(
      builder: (context) {
        final count = CountInjection.of(context);
        return Text('${count.value}');
      },
    ),
  ),
)
```
