Чӣ гуна иҷро кардани интиқоли ҳисобкунак дар компонент View дар дохили рӯйхат, то ки арзиши он аз берун навсозӣ шавад?
sobes.tech AI
Ҷавоб аз AI
Дар iOS, агар шумо SwiftUI-ро истифода мебаред, барои интиқол додани ҳисобкунак ба компонент View ва имконияти навсозии он аз берун, бояд пайванди маълумот тавассути @Binding ё ҳолат тавассути @State ва @ObservedObject истифода баред.
Масалан, агар шумо рӯйхат дошта бошед ва ҳар як унсур бояд ҳисобкунаки худро нишон диҳад, ки аз берун навсозӣ мешавад, шумо метавонед инро чунин иҷро кунед:
import SwiftUI
class CounterModel: ObservableObject {
@Published var count: Int = 0
}
struct CounterView: View {
@ObservedObject var counter: CounterModel
var body: some View {
Text("Count: \(counter.count)")
}
}
struct ContentView: View {
@StateObject var counter = CounterModel()
var body: some View {
VStack {
List(0..<5) { _ in
CounterView(counter: counter)
}
Button("Increment") {
counter.count += 1
}
}
}
}
Ин ҷо, CounterModel манбаи ҳақиқии ҳисобкунанда аст. Ҳамаи CounterView ба як объект ишора мекунанд ва вақте ки арзиш тағйир меёбад, навсозӣ мешаванд. Ин тарз, навсозии ҳисобкунак аз берун (масалан, бо тугма) дар ҳама қисмҳои рӯйхат таҷассум меёбад.
Агар ҳар унсур бояд ҳисобкунаки худро дошта бошад, шумо метавонед моделҳо ё арзишҳоро бо @Binding интиқол диҳед.