Skip to content

Commit 0bf94da

Browse files
committed
Fix misleading SwiftUI .task modifier example
The previous example attached .task to an optional Image that was initially nil, which meant the task would never execute. Wrapped the content in a Group with proper conditional rendering to ensure the task runs when the view appears. Fixes #21
1 parent c0f04c1 commit 0bf94da

File tree

11 files changed

+176
-44
lines changed

11 files changed

+176
-44
lines changed

src/ar/index.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,14 @@ struct ProfileView: View {
105105
@State private var avatar: Image?
106106

107107
var body: some View {
108-
avatar
109-
.task { avatar = await downloadAvatar() }
108+
Group {
109+
if let avatar {
110+
avatar
111+
} else {
112+
ProgressView()
113+
}
114+
}
115+
.task { avatar = await downloadAvatar() }
110116
}
111117
}
112118
```
@@ -119,8 +125,14 @@ struct ProfileView: View {
119125
@State private var avatar: Image?
120126

121127
var body: some View {
122-
avatar
123-
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
128+
Group {
129+
if let avatar {
130+
avatar
131+
} else {
132+
ProgressView()
133+
}
134+
}
135+
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
124136
}
125137
}
126138
```

src/en/index.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,14 @@ struct ProfileView: View {
103103
@State private var avatar: Image?
104104

105105
var body: some View {
106-
avatar
107-
.task { avatar = await downloadAvatar() }
106+
Group {
107+
if let avatar {
108+
avatar
109+
} else {
110+
ProgressView()
111+
}
112+
}
113+
.task { avatar = await downloadAvatar() }
108114
}
109115
}
110116
```
@@ -117,8 +123,14 @@ struct ProfileView: View {
117123
@State private var avatar: Image?
118124

119125
var body: some View {
120-
avatar
121-
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
126+
Group {
127+
if let avatar {
128+
avatar
129+
} else {
130+
ProgressView()
131+
}
132+
}
133+
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
122134
}
123135
}
124136
```

src/es/index.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,14 @@ struct ProfileView: View {
105105
@State private var avatar: Image?
106106

107107
var body: some View {
108-
avatar
109-
.task { avatar = await downloadAvatar() }
108+
Group {
109+
if let avatar {
110+
avatar
111+
} else {
112+
ProgressView()
113+
}
114+
}
115+
.task { avatar = await downloadAvatar() }
110116
}
111117
}
112118
```
@@ -119,8 +125,14 @@ struct ProfileView: View {
119125
@State private var avatar: Image?
120126

121127
var body: some View {
122-
avatar
123-
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
128+
Group {
129+
if let avatar {
130+
avatar
131+
} else {
132+
ProgressView()
133+
}
134+
}
135+
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
124136
}
125137
}
126138
```

src/ja/index.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,14 @@ struct ProfileView: View {
105105
@State private var avatar: Image?
106106

107107
var body: some View {
108-
avatar
109-
.task { avatar = await downloadAvatar() }
108+
Group {
109+
if let avatar {
110+
avatar
111+
} else {
112+
ProgressView()
113+
}
114+
}
115+
.task { avatar = await downloadAvatar() }
110116
}
111117
}
112118
```
@@ -119,8 +125,14 @@ struct ProfileView: View {
119125
@State private var avatar: Image?
120126

121127
var body: some View {
122-
avatar
123-
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
128+
Group {
129+
if let avatar {
130+
avatar
131+
} else {
132+
ProgressView()
133+
}
134+
}
135+
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
124136
}
125137
}
126138
```

src/ko/index.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,14 @@ struct ProfileView: View {
105105
@State private var avatar: Image?
106106

107107
var body: some View {
108-
avatar
109-
.task { avatar = await downloadAvatar() }
108+
Group {
109+
if let avatar {
110+
avatar
111+
} else {
112+
ProgressView()
113+
}
114+
}
115+
.task { avatar = await downloadAvatar() }
110116
}
111117
}
112118
```
@@ -119,8 +125,14 @@ struct ProfileView: View {
119125
@State private var avatar: Image?
120126

121127
var body: some View {
122-
avatar
123-
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
128+
Group {
129+
if let avatar {
130+
avatar
131+
} else {
132+
ProgressView()
133+
}
134+
}
135+
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
124136
}
125137
}
126138
```

src/pt-BR/index.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,14 @@ struct ProfileView: View {
105105
@State private var avatar: Image?
106106

107107
var body: some View {
108-
avatar
109-
.task { avatar = await downloadAvatar() }
108+
Group {
109+
if let avatar {
110+
avatar
111+
} else {
112+
ProgressView()
113+
}
114+
}
115+
.task { avatar = await downloadAvatar() }
110116
}
111117
}
112118
```
@@ -119,8 +125,14 @@ struct ProfileView: View {
119125
@State private var avatar: Image?
120126

121127
var body: some View {
122-
avatar
123-
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
128+
Group {
129+
if let avatar {
130+
avatar
131+
} else {
132+
ProgressView()
133+
}
134+
}
135+
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
124136
}
125137
}
126138
```

src/pt-PT/index.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,14 @@ struct ProfileView: View {
105105
@State private var avatar: Image?
106106

107107
var body: some View {
108-
avatar
109-
.task { avatar = await downloadAvatar() }
108+
Group {
109+
if let avatar {
110+
avatar
111+
} else {
112+
ProgressView()
113+
}
114+
}
115+
.task { avatar = await downloadAvatar() }
110116
}
111117
}
112118
```
@@ -119,8 +125,14 @@ struct ProfileView: View {
119125
@State private var avatar: Image?
120126

121127
var body: some View {
122-
avatar
123-
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
128+
Group {
129+
if let avatar {
130+
avatar
131+
} else {
132+
ProgressView()
133+
}
134+
}
135+
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
124136
}
125137
}
126138
```

src/ru/index.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,14 @@ struct ProfileView: View {
105105
@State private var avatar: Image?
106106

107107
var body: some View {
108-
avatar
109-
.task { avatar = await downloadAvatar() }
108+
Group {
109+
if let avatar {
110+
avatar
111+
} else {
112+
ProgressView()
113+
}
114+
}
115+
.task { avatar = await downloadAvatar() }
110116
}
111117
}
112118
```
@@ -119,8 +125,14 @@ struct ProfileView: View {
119125
@State private var avatar: Image?
120126

121127
var body: some View {
122-
avatar
123-
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
128+
Group {
129+
if let avatar {
130+
avatar
131+
} else {
132+
ProgressView()
133+
}
134+
}
135+
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
124136
}
125137
}
126138
```

src/tr/index.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,14 @@ struct ProfileView: View {
107107
@State private var avatar: Image?
108108

109109
var body: some View {
110-
avatar
111-
.task { avatar = await downloadAvatar() }
110+
Group {
111+
if let avatar {
112+
avatar
113+
} else {
114+
ProgressView()
115+
}
116+
}
117+
.task { avatar = await downloadAvatar() }
112118
}
113119
}
114120
```
@@ -120,8 +126,14 @@ struct ProfileView: View {
120126
@State private var avatar: Image?
121127

122128
var body: some View {
123-
avatar
124-
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
129+
Group {
130+
if let avatar {
131+
avatar
132+
} else {
133+
ProgressView()
134+
}
135+
}
136+
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
125137
}
126138
}
127139
```

src/zh-CN/index.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,14 @@ struct ProfileView: View {
105105
@State private var avatar: Image?
106106

107107
var body: some View {
108-
avatar
109-
.task { avatar = await downloadAvatar() }
108+
Group {
109+
if let avatar {
110+
avatar
111+
} else {
112+
ProgressView()
113+
}
114+
}
115+
.task { avatar = await downloadAvatar() }
110116
}
111117
}
112118
```
@@ -119,8 +125,14 @@ struct ProfileView: View {
119125
@State private var avatar: Image?
120126

121127
var body: some View {
122-
avatar
123-
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
128+
Group {
129+
if let avatar {
130+
avatar
131+
} else {
132+
ProgressView()
133+
}
134+
}
135+
.task(id: userID) { avatar = await downloadAvatar(for: userID) }
124136
}
125137
}
126138
```

0 commit comments

Comments
 (0)