🅅aleriy
вот так запрос в компоненте можно делать? а если я захочу аксиос на фетч поменять?
да на что угодно меняй, только кастомный хук лучше делать как там показано в примере
🅅aleriy
чтобы не срать в каждом компоненте эти фетчи/аксиос запросы
Ilya
да конечно может, но там дальше эффект все же возвращает функцию
прочитал дальше Warning: useEffect function must return a cleanup function or nothing. Promises and useEffect(async () => …) are not supported, but you can call an async function inside an effect..
Ilya
почему нет?
потому что будет варнинг
Vadim
в статье можно лишь подсмотреть интересные мысли, но не копировать 1 в 1
🅅aleriy
прочитал дальше Warning: useEffect function must return a cleanup function or nothing. Promises and useEffect(async () => …) are not supported, but you can call an async function inside an effect..
скажем так страшного ничего не случится, но даже в доке написано, что такие функции лучше либо внутри самого эффекта объявлять, либо вне компонента вообще, если она не использует локальных переменных компонента
🅅aleriy
суть в том, что в статье показан сначала неверный подход, потом разхясняется почему он неверный, потом делается исправление и так по шагам до нормальной версии рабочей
Roman
А как вообще это лучше организовать, чтобы на проект в codesandbox подтянуть (зафетчить) мой файлик json?
Danila
А как вообще это лучше организовать, чтобы на проект в codesandbox подтянуть (зафетчить) мой файлик json?
Так же как и зафетчить файлик из любого другого места - с сервера фетчем или аксиосом. Но в кодсандбокс можно просто перетащить твой файл в левую панель и он туда загрузится, дальше просто import data from 'file.json'
Roman
Да мне бы нужно сэмулировать что то что что в файлике это ответ сервера. Ну вот как сказали замокать или мокапить.
Roman
На локале это через json-server мона сделать
Danila
Да мне бы нужно сэмулировать что то что что в файлике это ответ сервера. Ну вот как сказали замокать или мокапить.
Ну сделай функцию fakeFetch, которая тебе промис вернёт который в жсон резолвится
Дима
это кейс для эффектов, если кому интересно)
Roman
Ну сделай функцию fakeFetch, которая тебе промис вернёт который в жсон резолвится
Ага надо попробовать. Я думал может есть онлайн сервисы где заливаешь свой json и и на автомате сервер поднимается, к которому можно подключиться потом
Дима
gist.github.com
🅅aleriy
https://my-json-server.typicode.com/
Дима
создаёшь гист, делаешь в нём json файл, после сохранения нажимаешь на нём raw
Danila
https://my-json-server.typicode.com/
И что, даже корс не ругнётся?
Roman
Хорошо спасибо займусь
🅅aleriy
И что, даже корс не ругнётся?
ну не стали бы они делать сервис который на cors ругается же
Danila
Danila
Или для этого?
Danila
Я думал, просто сниппеты шарить
Danila
И правда, работает :3 Спасибо
🅅aleriy
ну я всегда юзаю когда надо быстро факнуть апишечку там без гемора
Bogdan
ну кек, что не так со мной, у всех работает?
Роман
Всем привет, можно ли для Field из Redux-form пробросить ref? Нужно по нажатию на кнопку добавить фокус для инпута
🅅aleriy
Bogdan
хз
покажи как отправил?
🅅aleriy
покажи как отправил?
на скрине всё показано
Bogdan
на скрине всё показано
а не заметил первый раз
Bogdan
на скрине всё показано
может codesandbox блокирует?
🅅aleriy
может codesandbox блокирует?
https://codesandbox.io/embed/admiring-feistel-dwx71
🅅aleriy
никто ничего не блокирует :)
🅅aleriy
Demuz
Здарова всем. Подскажите, когда телеграм обращается к сайту, для парсинга open graph мета, под каким user agent он это делает? Типа "Telegram, или telegrambot" и тому подобное.
Bogdan
https://codesandbox.io/embed/admiring-feistel-dwx71
а обязательно в ефекте запрос делать?
Bogdan
https://codesandbox.io/embed/admiring-feistel-dwx71
вот так если сверху кинуть?
🅅aleriy
вот так если сверху кинуть?
да накидывай как хочешь, у тебя CORS откуда там появился не пойму я что-то
Igor
казалось бы причем тут реакт...
опен граф для реакта же
Demuz
казалось бы причем тут реакт...
для подстановки meta og динамических, без SSR, через Prerender. Пишу проект на реакте, по этому именно тут спрашиваю, так как опыт у многих здесь нормальный.
Ilya
опен граф для реакта же
ага как аксиос для редакса
Bogdan
да накидывай как хочешь, у тебя CORS откуда там появился не пойму я что-то
вот за чем тогда ефект следить должен? если передать массив data оно бесконечно вызывается
Bogdan
лол
как тогда он должен понять, что мне именно за ним следить нужно?
Andrey
как тогда он должен понять, что мне именно за ним следить нужно?
чувак, мой совет, исходя из последних суток с твоими вопросами: подтягивай жс, подтягивай реакт на ютубе, курсах, статьях, документации, ватева
Andrey
не потому что токсик, а потому что человеку нужно объяснять, что у него в data каждый раз разные инстансы массивов, и эффект триггерится каждый фетч
Andrey
Наверное недавно в реакт хуках и первый раз столкнулся с таким
ну так я и говорю, пусть доку почитает там, пару раз а не будет просить пересказ доки реакта и жс у 7к человек
Bogdan
в доке написано, передай вторым параметром за чем следить, передал
Andrey
в доке написано, передай вторым параметром за чем следить, передал
да, только вот при каждом фетче и setData у тебя ССЫЛКА на массив каждый раз РАЗНАЯ эффект чекает oldData === data, естественно они разные, т.к. ссылки разные, эффект перезапускается, и фетчит по новой и так до бесконечности
Bogdan
значит нету возможности сравнить прошлые пропсы и новые??
Bogdan
за data то тебе зачем следить?
я думал он посмотрит, если не менялся массив, не отправит запрос
🅅aleriy
отслеживай там переменные, которые должны влиять на обновление данных
Andrey
значит нету возможности сравнить прошлые пропсы и новые??
если ты сравниваешь массивы или объекты, нужно сравнивать глубоко но вообще тебе уже сказали, как решать твою проблему ты копаешь явно не туда
Andrey
я думал он посмотрит, если не менялся массив, не отправит запрос
как он будет проверять, если data - то, что приходит с запроса?) Ну и как минимум [] !== []
🅅aleriy
я думал он посмотрит, если не менялся массив, не отправит запрос
у тебя может быть несколько вариантов когда тебе нужно загрузить данные 1. это первоначальное создание компонента в DOM 2. например по нажатию кнопки в твоем интерфейсе типа Загрузить/Обновить 3. периодически по таймеру 4. при изменении внешних пропсов например подключенные из редакс стора или пронесенные из родительского компонента 5. при изменении локальной переменной или локального стейта компонента
🅅aleriy
но никогда не надо тебе отслеживать массив, в который полученные данные складываются... никогда :)
🧬𝒜𝓁ℯ𝓍 🐮🇺🇦🍉
Всем привет, при отладке реакт-приложения в консоли вижу "There were more warnings in other files. You can find a complete log in the terminal". Вопрос: как это убрать, чтоб выводились все варны?
🦜
Подскажите, чот туплю, как мне получить такой вывод в консоль ? { $$typeof: Symbol(react.element), key: null, props: {}, ref: null, type: ClickCounter }
Borya
Всем доброго дня! В процессе дебага участка кода обнаружил, что willUnmount сначала вызывается у компонента - родителя, потом у ребёнка. Вопрос - это я упоролся, девтулзы врут, или для реакта это не аномальное поведение?))
🦜
console.log(<jsx/>)?
а если jsx() тоже самое?
Danila
а если jsx() тоже самое?
А. Ну почему нет, если функция jsx возвращает