Программируем под IOS
Anonymous
Как обновить просмотр, созданный с помощью @ViewBuilder при изменении @state?
Сообщение
Anonymous » 21 апр 2025, 14:01
Вот код: < /p>
Код: Выделить всё
struct DemoModel {
var text: String
}
struct DemoView: View {
@State var viewModel = DemoViewModel()
var body: some View {
VStack {
Text("Hello, ")
viewModel.builder?(DemoModel(text: "World!"))
viewModel.builder?(DemoModel(text: "World2!"))
viewModel.builder?(DemoModel(text: "World3!"))
}
}
func viewBuilder(@ViewBuilder builder: @escaping (DemoModel) -> V) -> Self {
viewModel.builder = { model in
AnyView(builder(model))
}
return self
}
}
class DemoViewModel {
var builder: ((DemoModel) -> AnyView)? = nil
}
struct WrapperDemoView: View {
@State var value = "🏆"
var body: some View {
VStack(spacing: 10) {
HStack {
Button("ADD 1") {
value += "1"
}
Button("ADD 2") {
value += "2"
}
}
Text(value)
DemoView()
.viewBuilder { model in
HStack {
Text(model.text + " " + value)
}
}
}
}
}
Почему, когда кнопка «Добавить 1» или «Добавить 2». Как я могу их обновлять?
Подробнее здесь:
https://stackoverflow.com/questions/795 ... te-changes
1745233283
Anonymous
Вот код: < /p> [code]struct DemoModel { var text: String } struct DemoView: View { @State var viewModel = DemoViewModel() var body: some View { VStack { Text("Hello, ") viewModel.builder?(DemoModel(text: "World!")) viewModel.builder?(DemoModel(text: "World2!")) viewModel.builder?(DemoModel(text: "World3!")) } } func viewBuilder(@ViewBuilder builder: @escaping (DemoModel) -> V) -> Self { viewModel.builder = { model in AnyView(builder(model)) } return self } } class DemoViewModel { var builder: ((DemoModel) -> AnyView)? = nil } struct WrapperDemoView: View { @State var value = "🏆" var body: some View { VStack(spacing: 10) { HStack { Button("ADD 1") { value += "1" } Button("ADD 2") { value += "2" } } Text(value) DemoView() .viewBuilder { model in HStack { Text(model.text + " " + value) } } } } } [/code] Почему, когда кнопка «Добавить 1» или «Добавить 2». Как я могу их обновлять? Подробнее здесь: [url]https://stackoverflow.com/questions/79584381/how-to-update-view-created-with-viewbuilder-when-related-state-changes[/url]
0 Ответы
13 Просмотры
Последнее сообщение Anonymous
21 апр 2025, 15:33
Рекомпозиция не вызывается при изменении класса State Holder.
Anonymous »
04 янв 2025, 23:45 » в форуме
Android
Я хочу использовать класс держателя состояния, чтобы сохранять некоторые параметры состояния на уровне приложения, например, если необходимо отобразить диалоговое окно. Для этого я добавил переменные заголовка и сообщения в класс держателя состояния...
0 Ответы
20 Просмотры
Последнее сообщение Anonymous
04 янв 2025, 23:45
Рекомпозиция не вызывается при изменении класса State Holder.
Anonymous »
05 янв 2025, 00:30 » в форуме
Android
Я хочу использовать класс держателя состояния, чтобы сохранять некоторые параметры состояния на уровне приложения, например, если необходимо отобразить диалоговое окно. Для этого я добавил переменные заголовка и сообщения в класс держателя состояния...
0 Ответы
22 Просмотры
Последнее сообщение Anonymous
05 янв 2025, 00:30
SwiftUI. Как фильтровать дочерние элементы ViewBuilder?
Anonymous »
16 мар 2024, 01:14 » в форуме
IOS
Мне очень любопытно, как реализованы .swipe Actions представления List
Вот как выглядят .swipe Actions
List {
Text( Test )
.swipeActions {
Button( Action1 ) {}
Button( Action2 ) {}
}
}
.swipeActions принимает ViewBuilder в качестве содержимого....
0 Ответы
36 Просмотры
Последнее сообщение Anonymous
16 мар 2024, 01:14
Необязательное закрытие @ViewBuilder
Anonymous »
24 май 2024, 05:02 » в форуме
IOS
Возможно ли в SwiftUI иметь дополнительное закрытие @ViewBuilder? Например, предположим, что я хочу разработать собственное представление, которое использует два замыкания построителя представлений, например:
import SwiftUI
struct...
0 Ответы
65 Просмотры
Последнее сообщение Anonymous
24 май 2024, 05:02