172 похожих чатов

Народ, подскажите а как можно из инита сделать append в

массив? То несколько вариантов испробовал, не помогло, бо как вычитал что из инита нельзя аппендить, и даже если вызывать функцию и уже в ней аппендить

8 ответов

17 просмотров

Нарисуй схематично что тебе надо

Daniil-Razbitski Автор вопроса
Никита
Нарисуй схематично что тебе надо

честно, в вообще не представляю, в плане схемы, как это нарисовать, но если последовательно как должно было бы быть по моей задумке, это: Подписываюсь на ивент pusher для получения уведомления от сервера о сообщении новом -> полученное конверчу в data -> дату эту уже декоде по модели -> записать в массив который рендерю уже это всё. И вот скрин как это делаю, (криво и как вафел походу...) прост 1 раз такое делаю, т.к ничего не делал раньше с realtime по типу soketIo или Pusher, да почти одно и тоже, сокеты и там и там

Daniil Razbitski
screenshot честно, в вообще не представляю, в плане схемы, ка...

https://stackoverflow.com/questions/63219840/swiftui-append-in-init-function-doesnt-work

Daniil Razbitski
screenshot честно, в вообще не представляю, в плане схемы, ка...

Вот здесь вся магия SUI выливается наружу )  Ты наверное знаешь, что SUI каждый раз, когда ему нужно перерисовать что-то на экране, пробегается по всей иерархии body и снова и снова создаёт все нужные ему вьюхи. То есть твой init может вызваться не один раз, а каждый раз, когда SUI решит перерисовать твою вьюху по тем или иным причинам. Поэтому тебе нужно понимать, что всё что ты делаешь внутри init может быть вызвано огромное количество раз. Если ты должен подписаться лишь один раз то знай, что на деле будешь подписываться каждый раз, когда SUI решит перерисовать твою вьюху. Имей это ввиду. А вот касаемо State, разработчики SUI об этом заранее позаботились и на самом деле, то что хранится внутри State, хранится на самом деле в отдельном хранилище вне твоей вьюхи. Вот только доступ к этому хранилищу появляется после вызова init. Поэтому все твои попытки вызвать append ни к чему не приводят, потому что доступа к хранилищу в котором реально находятся твои данные в init у тебя нет.

Руслан Лутфуллин
Вот здесь вся магия SUI выливается наружу )  Ты н...

Даже если посмотреть на определение State, то setter у wrappedValue немутируемый

Daniil-Razbitski Автор вопроса
Daniil-Razbitski Автор вопроса
Evgenii <JonFir> Elchev
А зачем тебе апенд в массив делать?

есть чат, он предназначен для общения между клиентом и бухглатером, пользователь пишет сообщение, оно по АПИ улетает на бек, бек триггерит сервис Pusher, и в аппку прилетает по ивенту сообщение с содержанием, от кого, какая роль и сам текс, либо просто текст либо урл(по которому файл буду с серва подгружать, что ползователь отправил), и вот при ивенте от сервиса (тот же вебсокет от использует), я разбираюи это сообщение и пихаю в массив для отрисовки, бо до 10кб ограничение видел у них (ну либо беды с башкой и это не уних)

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта