ಸ್ಪಷ್ಟ container ಮಾಲಕತ್ವದೊಂದಿಗೆ Flutter ಏಕೀಕರಣ.

ProviderScope ಒಂದು container ಅನ್ನು ಹೊಂದಬಹುದು ಅಥವಾ ಹೊರಗಿನಿಂದ ಒಂದನ್ನು ಸ್ವೀಕರಿಸಬಹುದು. Consumer APIಗಳು WidgetRef ಪ್ರವೇಶವನ್ನು Riverpod-ಶೈಲಿಯ ಕೋಡ್‌ಗೆ ಹೊಂದಿಕೆಯಾಗುವಂತೆ ಇಡುತ್ತವೆ.

ProviderScope ಮಾಲಕತ್ವ

Container ಮಾಲಕತ್ವವು dispose ಜವಾಬ್ದಾರಿಯನ್ನು ಬದಲಿಸುತ್ತದೆ.

ಆಂತರಿಕ container

ProviderScope(child: ...) ಸ್ವಯಂಚಾಲಿತವಾಗಿ dispose ಆಗುತ್ತದೆ

ಬಾಹ್ಯ container

ProviderScope(container: c, ...) ಗೆ ಕರೆಮಾಡುವವರು c.dispose() ಮಾಡಬೇಕು

ನಿಯಂತ್ರಣರಹಿತ scope

UncontrolledProviderScope container ಅನ್ನು ಎಂದಿಗೂ dispose ಮಾಡುವುದಿಲ್ಲ

ಸಾಮಾನ್ಯ ತಪ್ಪು

widget ಪರೀಕ್ಷೆಗಳಲ್ಲಿ, ಹೊರಗಿನಿಂದ inject ಮಾಡಿದ ProviderContainer ಅನ್ನು dispose ಮಾಡುವುದು ಮರೆಯಬೇಡಿ, ಇಲ್ಲವಾದರೆ ಬಾಕಿ ಇರುವ timer leak ಗಳು ಉಂಟಾಗಬಹುದು.

Consumer ಬಗೆಗಳು

ಎಲ್ಲ ಆಯ್ಕೆಗಳು WidgetRef ಅನ್ನು ಹೊರಹಾಕುತ್ತವೆ; widget ಶೈಲಿ ಮತ್ತು ಸ್ಥಳೀಯ ಸ್ಥಿತಿ ಅಗತ್ಯಗಳ ಆಧಾರದಲ್ಲಿ ಆಯ್ಕೆಮಾಡಿ.

ಅಪ್ಲಿಕೇಶನ್ ರೂಟ್

ಪ್ರತಿಯೊಂದನ್ನು ಯಾವಾಗ ಬಳಸಬೇಕು

Consumer: ಸಣ್ಣ reactive ಪ್ರದೇಶಗಳಿಗೆ ಸ್ಥಳೀಯ builder ಬ್ಲಾಕ್.
ConsumerWidget: build(context, ref) ಹೊಂದಿರುವ ಸ್ಥಿತಿರಹಿತ widget.
ConsumerStatefulWidget: ConsumerState ಒಳಗೆ ref ಹೊಂದಿರುವ ಸ್ಥಿತಿಯುತ widget.

ಉದಾಹರಣೆ: ConsumerStatefulWidget

WidgetRef ಮತ್ತು ಸ್ಥಳೀಯವಾಗಿ ಬದಲಾಯಿಸಬಹುದಾದ UI state ಎರಡೂ ಬೇಕಾಗಿರುವಾಗ ConsumerState ಬಳಸಿ.

class HomePage extends ConsumerStatefulWidget {
  const HomePage({super.key});

  @override
  ConsumerState<HomePage> createState() => _HomePageState();
}

class _HomePageState extends ConsumerState<HomePage> {
  bool expanded = false;

  @override
  Widget build(BuildContext context) {
    final user = ref.watch(currentUser);
    return Column(
      children: [
        Text('$user'),
        Switch(
          value: expanded,
          onChanged: (v) => setState(() => expanded = v),
        ),
      ],
    );
  }
}
Consumer ಒಳಾಂಗಿಕಗಳು rebuild ಗಳನ್ನು post-frame ಗೆ ವೇಳಾಪಟ್ಟಿ ಮಾಡುತ್ತವೆ, ಇದರಿಂದ setState-during-build ಸಮಸ್ಯೆಗಳು ಕಡಿಮೆಯಾಗುತ್ತವೆ.
rebuild ಅನ್ನು ಪ್ರಾರಂಭಿಸಬೇಕಾದ ಮೌಲ್ಯಗಳಿಗಾಗಿ ಮಾತ್ರ WidgetRef.watch ಬಳಸಿ.
ಜೊತೆಗಿನ side effects ಗಳನ್ನು build ಹೊರಗೆ ಇಡಿ; callbacks ಮತ್ತು invoke/refresh ವಿಧಾನಗಳನ್ನು ಬಳಸಿ.

ಮುಂದಿನ ಹಂತಗಳು

ಪರೀಕ್ಷೆ

container ಜೀವನಚಕ್ರ, overrides, ಮತ್ತು async ನವೀಕರಣಗಳನ್ನು unit ಮತ್ತು widget ಪರೀಕ್ಷೆಗಳಲ್ಲಿ ಪರಿಶೀಲಿಸಿ.

ಪರೀಕ್ಷೆಗಳನ್ನು ತೆರೆಯಿರಿ

API ಉಲ್ಲೇಖ

ProviderScope, WidgetRef, ಮತ್ತು container ವಿಧಾನಗಳ signature ಗಳನ್ನು ನೋಡಿ.

API ಉಲ್ಲೇಖ ತೆರೆಯಿರಿ