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

Есть изящный способ нативно связать React.Suspense и компонент который ждет

асинхронно данные что бы их нарисовать, как то вместе? Без доп обертки, которая будет хранить состояние нужной загрузки

48 ответов

21 просмотр
Valentin- Автор вопроса

https://ru.reactjs.org/docs/concurrent-mode-suspense.html#approach-3-render-as-you-fetch-using-suspense кажется нашел решение в офф доке

Valentin- Автор вопроса
Valentin
https://ru.reactjs.org/docs/concurrent-mode-suspen...

А что за ресурс fetchProfileData в доке? Никто не разбирался, что за бред >.<

Valentin- Автор вопроса
Valentin
А что за ресурс fetchProfileData в доке? Никто не ...

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

Valentin- Автор вопроса
Valentin
кто то решал такую задачку? Как обернуть реакт ком...

кто может подсказать по дата фетчину и Suspense?

Valentin- Автор вопроса
Timofey Goncharov
что такое загрушка

некий скелет, пока нет данных для отображения React.Suspense.fallback

Valentin- Автор вопроса
Timofey Goncharov
что такое загрушка

типа такого, но еще хотелось бы добавить ErrorBoundary. И лучше в композиции, где используется ViewSource сделать обертки (2 фото)

Valentin- Автор вопроса
Arman
<Suspense fallback={тут скелет}=> не?

да ты прав) проблема в другом, как создать Component который не должен этот скелет у себя обрабатывать

Valentin
screenshot типа такого, но еще хотелось бы добавить ErrorBoun...

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

Valentin- Автор вопроса
Valentin
да ты прав) проблема в другом, как создать Compone...

тк возвращать Promise<React.Element> он не позволит использовать в jsx

Valentin- Автор вопроса
Timofey Goncharov
не понял тебя)

я больше мучное люблю

Valentin
я больше мучное люблю

ну извини. тоже не люблю когда от темы отходят. но я сам много раз сталкивался с подобным и каждый раз убеждался что логику лучше вытаскивать за пределы компонента. и запросы делать тоже за пределами.

Valentin- Автор вопроса
Timofey Goncharov
ну извини. тоже не люблю когда от темы отходят. но...

много однотипных действий, вся бизнес логика вытянута, просто не удобно/не приятно писать лишнию логику на реакте для таких кейсов

Valentin
много однотипных действий, вся бизнес логика вытян...

полностью согласен если речь идет о геморном стейтменеджере например таком как redux. а вот если взять effector код пишется в удовольствие и ты бы написал меньше кода с ним чем написано в твоем примере.

Valentin
screenshot типа такого, но еще хотелось бы добавить ErrorBoun...

вот например тут в коде вижу потенциальные уязвимые места. например service если измениться, у тебя пойдет запрос повторный. но если пойдет повторный запрос надпись 'loading...' не появиться потому что старые данные этому помешают. придется вводить флайг isLoding который нужно вручную включать/выключать при старте и завершении запроса. effector из коробки это бы сделал

Valentin- Автор вопроса
Timofey Goncharov
вот например тут в коде вижу потенциальные уязвимы...

представь себе отдельную модалку которая загрузила данные и показа и все. service - одна ручка и не более. реакт из коробки это делает, но через стейт =(

Valentin- Автор вопроса
Valentin
представь себе отдельную модалку которая загрузила...

хотя в офф доке написано, что можно (см ссылку выше). Но там кривой пример =((

Valentin
screenshot типа такого, но еще хотелось бы добавить ErrorBoun...

а еще, если ты покинул роут или каким-то еще способом размонтировал компонент, в момент когда запрос ушел, по завершению запроса будет setState и реакт кинет свою ошибку об этом.

Valentin- Автор вопроса
Timofey Goncharov
а еще, если ты покинул роут или каким-то еще спосо...

не уверен… ну можно вызывать метод отмены промиса, все в сервисе есть, спасибо 😉

Valentin
не уверен… ну можно вызывать метод отмены промиса,...

да, можно. но все это действия дополнительные. я через все это не один раз прошел

Valentin- Автор вопроса
Valentin
что значит дополнительные?

ну useEffect возвращающий коллбек, в нем отмена запроса

Valentin
что значит дополнительные?

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

Timofey Goncharov
дай угодаю, ты ведь не так давно задумался зачем т...

спасибо, Тимофей) помог! Так и быть, прокидывал функцию в пропсы

Valentin
года 3

и 3 года уже как не менял мнения?)

Timofey Goncharov
:)

рекомендуешь посмотреть в сторону effector?

Valentin- Автор вопроса
Valentin
Посмотри пример

а ну это нагуглил, там же красный варнинг что экспереметльано и могут выпилить) а ты говоришь 3 года)

Valentin- Автор вопроса
Valentin
Посмотри пример

Я задумался, мы через суспенс можем догружать часть кода как отдельный бандо, а можно его использовать как обертку над асинхронными данными. В примере показано, типа да. Но не получилось сделать. Так была бы классная композиция с обработки ошибок через спец реакт компонент и показа скелета пока нет данных. Со стороны чтения jsx - сказка

Valentin- Автор вопроса
Timofey Goncharov
а ну это нагуглил, там же красный варнинг что эксп...

Так эту идею я решил попробовать этой ночью.

Valentin
Я задумался, мы через суспенс можем догружать част...

ну я вот тоже возлагал большие надежды на swr пока его не попробовал. а тут что-то очень похожее

Valentin- Автор вопроса
Valentin
хех, его и использую

а я вот взял однажды и пожалел. если надо тупо сделать запрос и показать данные. вполне себе прокатит. но шаг всторону. надо данные изменить, передать другим компонентам, куда-то наверх или что-то еще с ними сделать. и начинается возня такая что ну его к черту)

Valentin- Автор вопроса
Valentin
это уже архитектурные вопросики

именно так. я вот решил их путем использования effector)))

Valentin- Автор вопроса
Timofey Goncharov
именно так. я вот решил их путем использования ef...

я так и не попробовал его, есть тру пример по решению проблемы выше?

Valentin
я так и не попробовал его, есть тру пример по реше...

ну не знаю, я когда зашел в доку эффектора и бегло ознакомился с эффектами, евентами, сторами. сразу понял какие преимущества он дает. примера под рукой нет

Valentin- Автор вопроса
Timofey Goncharov
ну не знаю, я когда зашел в доку эффектора и бегло...

он ведь больше функциональный? У меня здесь ООП через Mobx + Ioc/DI (SOLID)

Valentin
он ведь больше функциональный? У меня здесь ООП че...

с mobx имел дело, но мне больше по душе пришелся как раз effector по причинам отсутствия лишнего кода. на много меньше кода на нем пишешь

Valentin- Автор вопроса
Timofey Goncharov
с mobx имел дело, но мне больше по душе пришелся к...

эх.. над попробовать. как то видел доку.. ивенты это оч интересно

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

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

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта