ಸ್ಪಷ್ಟ 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: local builder block for small reactive areas.
ConsumerWidget: stateless widget with build(context, ref).
ConsumerStatefulWidget: stateful widget with ref inside ConsumerState.
ಉದಾಹರಣೆ: 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),
),
],
);
}
}
ಮುಂದಿನ ಹಂತಗಳು
ಪರೀಕ್ಷೆ
container ಜೀವನಚಕ್ರ, overrides, ಮತ್ತು async ನವೀಕರಣಗಳನ್ನು unit ಮತ್ತು widget ಪರೀಕ್ಷೆಗಳಲ್ಲಿ ಪರಿಶೀಲಿಸಿ.
ಪರೀಕ್ಷೆಗಳನ್ನು ತೆರೆಯಿರಿAPI ಉಲ್ಲೇಖ
ProviderScope, WidgetRef, ಮತ್ತು container ವಿಧಾನಗಳ signature ಗಳನ್ನು ನೋಡಿ.
API ಉಲ್ಲೇಖ ತೆರೆಯಿರಿ