如何从 SwiftUI View Init 中的现有数组创建新数组

How to create new array from existing array inside SwiftUI View Init

在下面的代码中,我试图创建一个名为 recordsPlusOne 的数组,其中包含 recordsViewModel (recordsViewModel.records) 中数组中的所有项目和一个需要的新记录在 RecordsView 中创建,但在 init()

中调用 recordsViewModel.records 时出现错误

如何创建一个新数组,其中包含需要在 RecordsViewinit() 中创建的现有一加一记录中的所有项目?

代码:

struct RecordsView: View {
    @ObservedObject var recordsViewModel: RecordsViewModel
    private var recordsPlusOne: [Record] = []
    
    init(){
        let newRecord = Record()
        recordsPlusOne = recordsViewModel.records // thows error 1
        recordsPlusOne.append(newRecord)
    }// thows error 2

    var body: some View {
       // some code to display the records
    }
}

错误 1

Variable 'self.recordsViewModel' used before being initialized

错误 2

Return from initializer without initializing all stored properties

如果 recordsViewModel 将通过 init 个参数注入,则可以这样做,例如

init(vm: RecordsViewModel) {   // << here !!
    let newRecord = Record()
    recordsPlusOne = vm.records       // << pre-use !!
    recordsPlusOne.append(newRecord)
    recordsViewModel = vm                 // << initializing !!
}