RocketView constructor
RocketView({
- Key? key,
- required RocketModel model,
- required Widget builder(),
- dynamic call() = _myDefaultFunc,
- CallType callType = CallType.callAsFuture,
- int secondsOfStream = 1,
- Widget? loader,
- Widget onError(
- RocketException error,
- dynamic reload()
انشاء البناء الخاص باعادة بناء المحتويات الخاصة به.
model
النموذج الذي يحتوي على البيانات المراد تجديدها
builder
البناء دالة ترجع المحتويات المراد اعادة بناءها لتغيير قيمها
loader
الجزء الخاص بانتظار تحميل البيانات و هو اختياري
call
الدالة الخاصة بطلب البيانات من لخادم
callType
طريقة استدعاء الدالة
secondsOfStream
في حالة اختيار call
عدد الثواني لاعادة استدعاء دالة
CallType.callAsStream
onError
لبناء الواجهة الخاصة باظهار اي خطأ ويتم تمرير كائن يحمل الاخطأ التي حدثت
Implementation
RocketView({
Key? key,
required this.model,
required this.builder,
this.call = _myDefaultFunc,
this.callType = CallType.callAsFuture,
this.secondsOfStream = 1,
this.loader,
this.onError,
}) {
model.load(true);
/// call التحقق من طريقة الاستدعاء لدالة
switch (callType) {
case CallType.callAsFuture:
Future.value(call()).whenComplete(() => model.load(false));
break;
case CallType.callIfModelEmpty:
if (!model.existData) {
Future.value(call()).whenComplete(() => model.load(false));
}
break;
case CallType.callAsStream:
Future.value(call()).whenComplete(() => model.load(false));
Timer.periodic(Duration(seconds: secondsOfStream), (timer) {
model.loadingChecking(true);
call();
if (!model.hasListener()) timer.cancel();
});
break;
}
}