はじめに
※この投稿はメモ程度の投稿です。
この記事は、SwiftUIでNavigationLinkを利用し、Viewを移動する際に、遷移先のViewでの値の変更を元のViewに反映させるための方法を示します。やり方としてはViewを再描画させる方法です。
ソースコード
@State private var refreshID = UUID()
var body: some View {
List {
ForEach(items) { item in
Text(item.name ?? "No Name")
}
}
.id(refreshID)
.onAppear {
refreshID = UUID()
}
}
説明
簡単に説明をします
@State private var refreshID = UUID()
上記の部分で、初期のUUIDを指定
.id(refreshID)
IDが変わったら新しく再描画する処理
.onAppear {
refreshID = UUID()
}
再度新しいUUIDを格納する