Flutter 服务器驱动的 UI

问题描述 投票:0回答:1
  • 我正在开发一个电子商务应用程序,其中主屏幕中的所有小部件都将根据我们从服务器获得的响应进行设置。
  • 现在的问题是,每当我们多次获得相同类型的小部件时,例如我们获得了广告部分两次,现在我们必须多次加载广告部分,并且我们必须为这两个部分调用不同的 api,api 调用了两次,它也给出了不同的响应,但是当需要将这些数据显示到 UI 时,它获取我的两个实例最后调用的 api 的数据。
  • 我正在使用 bloc,dio。
  • 任何人都可以告诉做同样事情的正确解决方案吗?
  • 地图小部件代码
mapWidgets(List<Datum> serverUi,
      HomeBodyDataState state,) {
    for (var element in serverUi) {
      String widgetType = element.keywords;
      serverWidgets.add(
        toWidget(element, widgetType, state),
      );
    }
    return serverWidgets;
  }

  Widget toWidget(Datum element,
      String widgetType,
      HomeBodyDataState state,) {
    switch (widgetType) {
      case AppStrings.advertiseSectionIdentifier:
        return Advertise(
          imagesList: state.advertiseSectionData.fold(
                () => null,
                (a) =>
                a.fold(
                      (l) => null,
                      (r) =>
                      r.value.fold(
                            (l) => null,
                            (r) => r,
                      ),
                ),
          ),
        );
      case AppStrings.sliderSectionIdentifier:
  • 调用api的函数代码

    Future<Either<ValueFailures, HeaderImagesList>> getAdvertiseData({
        required String endPoint,
      }) async {
        log('api called : ${endPoint}');
        try {
          final response = await _dio.get(
            AppStrings.baseUrl + endPoint,
          );
          final result = response.data;
          log('api called : ${result.toString()}');
          return right(
            AdvertiseResponseModel.fromJson(result).toDomain(),
          );
        } on DioError catch (error) {
          return left(
            ValueFailures.serverError(
              failedValue: error.error.toString(),
            ),
          );
        }
      }


  • 在我看来,我的价值观随着时间的推移而被推翻
flutter dart flutter-dependencies dart-pub
1个回答
-2
投票

如何实现SDUI?必须使用flutter包吗?

© www.soinside.com 2019 - 2024. All rights reserved.