У меня есть 15 API, чтобы показать домашнюю страницу. как лучше всего управлять всеми 15 статусами API в одном состоянии?
Я создал 15 абстрактных классов Status и использовал их в качестве конструктора для класса состояния и управлял созданием каждого виджета с помощью buildWhen, но это было очень сложно. Какова наилучшая практика?
Класс HomeState, который передается в пользовательский интерфейс
class HomeState {
Api1Status? api1status;
Api2Status? api2Status;
HomeState({
this.api1status,
this.api2Status,
});
HomeState copyWith({
Api1Status? newApi1status,
Api2Status? newApi2Status,
}) {
return HomeState(
api1status: newApi1Status ?? this.api1status,
api2Status: newApi2Status ?? this.api2Status,
);
}
}
каждый статус API для управления его состоянием
@immutable
abstract class Api1Status{}
class Api1Loading extends Api1Status{}
class Api1Completed extends Api1Status{
final Api1Entity Api1Entity;
Api1Completed(this.Api1Entity);
}
class Api1Error extends Api1Status{
final String message;
Api1Error(this.message);
}
и еще 14 классов статуса для каждого API
Какова наилучшая практика?





вы можете создать абстрактный класс DataState для управления состоянием каждого ответа API.
abstract class DataState<T> {
late final T? data;
late final String? error;
DataState(this.data, this.error);
}
class DataSuccess<T> extends DataState<T> {
DataSuccess({required T data}) : super(data, null);
}
class DataFailed<T> extends DataState<T> {
DataFailed({required String error}) : super(null, error);
}
class DataLoading<T> extends DataState<T> {
DataLoading() : super(null, null);
}