swift - SwiftUI View 观察其从父 View 传递的属性
问题描述
我如何写来观察从父视图传递的属性?
struct ParentView: View {
@State var prop = "a"
var body: some View {
ChildView(prop: prop)
}
}
struct ChildView: View {
var prop: String { // When the "prop" changed, do something.
didSet {
print(prop) // not work
}
}
var body: some View {
Text(prop)
}
}
解决方案
每次更改时都会创建一个具有新值的新ParentView
实例。ChildView
prop
@State var prop = "a"
您可以创建自定义初始化并检查新值:
struct ChildView: View {
var prop: String
init(prop: String) {
self.prop = prop
print(prop) // <-- here
}
var body: some View {
Text(prop)
}
}
推荐阅读
- java - Android - 从 ListView 上单击的项目传递值并将它们显示在新的 Activity 上
- mysql - RDS MySQL Storage Full ...当数据库使用率低时
- asp.net - 如何检查arraylist是否已经包含一个对象
- windows - 如何减小 Windows 中 Qt 创建的安装文件夹的大小
- azure - ML Studio中Web Service API的主键是否过期?
- arduino - 如何仅在存在或不存在 RFID 卡时执行一次代码
- c# - 从 JSON 对象列表中获取每个对象的特定值
- python - 平方误差是否取决于隐藏层的数量?
- c - 我可以分叉进程并执行内部函数吗?
- python-3.x - Numpy,Python3.6 - 无法理解为什么地址不同?