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

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

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

48 ответов

5 просмотров
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 имел дело, но мне больше по душе пришелся к...

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

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

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

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
14
а где есть mysql cloud кроме яндекс-клауд?
Oleg Nosov
13
hi im a cs student. i need some advice from people who have enough experience in Embedded Software. I need to know whether this profession is suitable for me. I have watched s...
Sahand 🏔️
8
Не ну фпц - это уже просто троллинг какой-то. Элементарный код нельзя собрать. ЧЯДНТ? program Project1; {$mode delphi} uses SysUtils, Classes, Generics.Collections; var...
Peter
4
вот что получается в интерпрететоре, работает и результаты выгляд разумными, но то как выглядит код мне не нравиться, а понять куда двигаться не очень могу, если кому не лень ...
Fedor
42
Карта сайта