🅅aleriy
🅅aleriy
зачем оборачивать createPortal чем то еще, если лучше сделать отдельный компонент
🅅aleriy
и не делать каждый раз поиск элемента в DOM
🅅aleriy
getElementById при каждом рендеринге зачем?
🅅aleriy
если элемент динамический, то можно по ref сослаться, если контейнер статичный и прописан в index.html то не нужно его искать каждый раз
Vova
норм, спасибо
Vova
еще что то есть?
🅅aleriy
еще что то есть?
<Route вне <Router странновато смотрятся
Vova
о в нем
🅅aleriy
но это уже от версии роутера используемого зависит
Vova
просто route в index
Vova
лучще в одном файле делать?
Vova
а понял
Vova
@ValeryKobzar а можно использовать и редакс и хуки в одном проекте, или лучше что то одно?
Vova
просто пишу чисто на редаксе все норм, а когда к редаксу хуки - дофига не понятных багов, по ходу из-за не знания хуков
Vova
то-есть это абсолютно разные вещи
Vova
редакс стейт менеджер а хуки замена жизненым циклам
🅅aleriy
ну типа того, хуки делают функциоанльные компоненты более умными :)
Vova
ладно, спасибо
🅅aleriy
а так для редакса обещали хуки сделать useRedux в 7+ релизах
🅅aleriy
чтобы перестаить оборачивать компоненты в connect
🅅aleriy
а точняк
🅅aleriy
7.1.0
🅅aleriy
у меня сайт не обновился просто
🅅aleriy
в новом проекте полностью на effector пересел, так что слегка потерял нить событий :)
🅅aleriy
useStore это они хорошо придумали :))) как в эффекторе прям
Егор
Добрый день Ребята посоветуйте статьи или теги по шаблонам проектирования на реакте
Александр
@ValeryKobzar а можно использовать и редакс и хуки в одном проекте, или лучше что то одно?
Господи, вы уже третий раз задаёте этот вопрос тут, какая связь между хуками и редаксом? Откуда вы взяли в голову что это хоть как-то взаимоисключающие вещи? Это вообще тёплое и мягкое, не поленюсь отвечу в очередной раз вам: можно разумеется использовать хуки и редакс вместе.
Александр
Офигенная новость
Александр
Зачем вам это? Чего вы хотите добиться ?
Alexey
setTimeout
Vladislav
жди ответ от api, а потом показывай весь контент целиком, а не кусками
Alexey
дождись ответа тогда, а то все эти секунды - костыли
Ilia
А асинхронно получать данные не красиво?
Vadim
сделай флаг в state. как только всё загрузилось что нужно поменяй его на true. В рендере если флаг false то return null
Vladislav
можно через Promise.all https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise/all
Alexey
fetch(url).then(raw => raw.json()).then(result => this.setState({ ... }));
Vladislav
а если один запрос, то пример выше
Alexey
если используется redux, тогда redux-thunk пусть заполняет стейт всё остальное сделают внутренности react/redux
Ilia
Redux-thunk ,состояние загрузки отловить и пока загрузка true ,ничего не рендерить ,как только false - рендерить
Vall
всем привет, есть санка, которая логинит юзера, внутри санки есть экшеныКриэйторы startRequest(), если успех то записывает юзера и successRequest(), если ошибка - failRequest, я с этой санки возвращаю axios, где в then возвращаю результат промиса, то есть вот такой код axios.post('https://',user).then(({token,...data}) => { dispatch(setUser(data)); return token; }), для чего я так делаю - для того что бы и вэб и мобайл мог использовать данный токен, так как у нас на проекте монорепа, потому в компоненте я делаю так: const submit = async () => { try { const token = await loginUser(data); await AsyncStorage.setItem('token',token); push('profile'); } catch(e) { //code } } вопрос в том, что я ошибку с сервера ловлю в санке, но и делаю обертку в методе копонента в виде try catch, может у кого была подобная ситуация, я просто думаю как можно написать еще проще этот код или никак? потому что получаеться у меня catch пустой внутри ибо у меня сама ошибка которая будет на серваке, сетится в санке, буду благодарен за разные варианты
Alexey
эм если redux, то там когда в пропсах данные появятся, тогда и нарисуется
Андрей
Есть родитель а в нем детка. Если родитель изменит свой стейт а детка нет, то родитель перерисуется вместе с его деткой даже если в детке будед sCU=фолсь?
Alexey
а данные где-нибудь ещё нужны? если только в одном компоненте, тогда как писали выше
Andrey
реакт без стейт менеджера юзать - вообще плохая затея (можешь попробовать effector)
Андрей
🥳
Alexey
в конструкторе тогда https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all для всех fetch-ей
Alexey
тогда просто fetch (или xhr, или какая-нибудь библиотека-обертка) и запись в state
Alexey
при изменении стейта произойдет ререндер, в render из данных .map() в нужные элементы или как там у тебя, не знаю
Alexey
<Header /> <Router> <Route ... /> <Route ... /> </Router> <Footer />
Anonymous
Как быстро развернуть функциональный компонент в вебшторме ?
Vadim
Всм зачем тебе его показывать через таймаут? Какие причины? Я думал что у тебя данные ещё не пришли а компонент рендерится без данных, поэтому ты так хочешь закостылить. Ок, это не то. Тогда зачем это тебе7
Vladimir
Как быстро развернуть функциональный компонент в вебшторме ?
по Alt+Enter есть предложения типа: Convert to variable holding function
Anonymous
сниппет написать
rccp классовый по дефолту разворачивает, а на функциональный по дефолту не предусмотрено? ;\
Anonymous
Подскажите, что еще можно заюзать, вместо функции eval(x: string) мне нужно получить результат из => ' 1 + 1 * 2 '
Alexey
это уже в документации к роутеру почитай :) скилл чтения доков очень полезен
Boris
Подскажите, что еще можно заюзать, вместо функции eval(x: string) мне нужно получить результат из => ' 1 + 1 * 2 '
new Function('a', 'b', 'return a + b'); https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Function
Ilya
new Function('a', 'b', 'return a + b'); https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Function
Это ничем не лучше eval ну если задача стоит избавиться от неявного испольнения кода то конструктор Function и eval - одинаково плохо
Sm•ok
Евал плох из-за того, что может скрипт запустить вредоносный
Sm•ok
new Function('a', 'b', 'return a + b'); const func = (a,b) => a+b
Sm•ok
Тут что бы ты не передавал, одинаково вроде сработает
Alexey
только в try-catch оберните
Sm•ok
Но конечно 1 формат кажется мне неудобным
Sm•ok
Не использовал ещё на практике
Sm•ok
Чем он схож на eval
Василий
и надо парсить строку на числа и выражения - твоя фцнкция задачу не решит
Sm•ok
Ты к чему это ?