SwiftUI — сбор пользовательских данных из динамически создаваемого пользовательского интерфейса

#swiftui

Вопрос:

В моем приложении есть определенная страница, на которой я создаю пользовательский интерфейс на основе данных сервера.

введите описание изображения здесь

Я создаю эти элементы динамически: двоичный файл, список, проверка и т. Д.

Теперь, как я могу впоследствии восстановить ввод данных пользователем.

   ForEach(0..<(paramsVM.productParams[index].params?.count ?? 0), id:.self) { i in

                            let viewType = ParamViewType(rawValue: paramsVM.productParams[index].params?[i].type  ?? "")
                            
                            switch viewType {
                            case .single_list:
                                SingleListParamView(params: .constant((paramsVM.productParams[index].params?[i])!), checkIsFiledFull: $checkFiledsIsFull, uploadParams: $uploadParams, check: $check, checkState: $checkState)
                                    .frame(width: UIScreen.main.bounds.width - 32)
                            case .multi_list:
                                MultiListParamView(params: (productParams[index].params?[i])!, uploadParams: $uploadParams, checkIsFiledFull: $checkFiledsIsFull, check: $check)
                                .frame(width: UIScreen.main.bounds.width - 32)
                                   
                            case .number:
                                NumberInputCell(params: .constant((paramsVM.productParams[index].params?[i])!), uploadParams: $uploadParams, isShowM2: (requiredParams[index].unit?.contains("M2") ?? false) ? true : false, checkIsFiledFull: $checkFiledsIsFull, check: $check)
                                    .frame(width: UIScreen.main.bounds.width - 32)
                            case .binary_button:
                                ParamBinartButton(params: .constant((paramsVM.productParams[index].params?[i])!), uploadParams: $uploadParams, checkIsFiledFull: $checkFiledsIsFull, check: $check)
                                    .frame(width: UIScreen.main.bounds.width - 32)
                            case .none:
                                EmptyView()
                            }
                        }
                        
 

Пожалуйста, помогите.

Комментарии:

1. Я вижу , что вы используете .constant Я считаю, что это @Binding , но вы не сможете отследить, что ввел пользователь, потому что значение выше не изменилось, я рекомендую использовать @EnvironmentObject или @StateObject , возможно @State , для этого