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

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

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

48 ответов

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта