我正在编写一个小应用程序,我需要将变量传递给函数。问题是该变量是绑定,但函数必须接受常规变量。
代码:
ForEach($deviceArrays.devices, id: \.id) { deviceArray in
HStack {
ForEach(deviceArray.row, id: \.id) { device in
AnotherView(device: $currentDevice, size: $size)
.onAppear {
setCurrentDevice(to: device)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
func setCurrentDevice(to device: Device) {
currentDevice = device
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是在这一行:
ForEach($deviceArrays.devices, id: \.id) { deviceArray in
Run Code Online (Sandbox Code Playgroud)
您应该使用$deviceArray它,因为您正在将 a 输入Binding到ForEach. 然后就可以访问deviceArray常规值了。
使用其wrappedValue属性。
这会将 的类型转换Binding<T>为T。在你的情况下,Binding<Device>到Device.
ForEach($deviceArrays.devices, id: \.id) { deviceArray in
HStack {
ForEach(deviceArray.row, id: \.id) { device in
AnotherView(device: $currentDevice, size: $size)
.onAppear {
setCurrentDevice(to: device.wrappedValue)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15347 次 |
| 最近记录: |