我不确定我是否正确使用了它,但情况如下:
我有一个观点:
struct TimerView: View {
@State private var numberOfVideos: Int
@State private var time = ""
private let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect()
init(numberOfVideos: Int) {
_numberOfVideos = State(initialValue: numberOfVideos)
}
var body: some View {
Text(time)
.onReceive(timer) { _ in
// it is called every second
time = "00:00"
}
ReportView(numberOfVideos: $numberOfVideos)
}
}
struct ReportView: View {
@Binding private var numberOfVideos: Int
init(numberOfVideos: Binding<Int>) {
// ❌ this is called every second, I don't want it.
self._numberOfVideos = numberOfVideos
}
var body: some View {
Text(String(numberOfVideos))
}
}
用途:
TimerView(numberOfVideos: 5)
每秒实例化ReportView
个,这不是我需要的.我怎么才能解决这个问题呢?